D3D Alpha混合

Direct3D计算Alpha混合的颜色公式:
Color = ( SrcRGB * SrcK ) + ( DestRGB * DestK )
 
SrcRGB表示源颜色值,即将要绘制的颜色值。SrcK表示源混合系数,通常赋值为D3DBLEND_SRCALPHA,即当前绘制像素的Alpha值
DestRGB表示目标颜色值,即当前缓冲区中的颜色值。DestK表示目标系数,通常赋值为D3DBLEND_INVSRCALPHA,即1减去当前绘制像素的Alpha值
 
则Direct3D计算Alpha混合的颜色公式可表示为
Color = ( SrcRGB * SrcAlpha ) + ( DestRGB * ( 1 - SrcAlpha ) )
 
混合步骤
 
Alpha混合默认关闭,所以首先需要开启它
Device -> SetRenderState( D3DRS_ALPHABLENDENABLE, true );
 
然后设置Alpha混合系数
Device -> SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
Device -> SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
 
还要指定资源(材质或Alpha通道)
Alpha通道可用DirectX自带的纹理工具创建,为DDS文件
 
DEMO演示图片:
alphablend.jpg
 

版权声明:本篇为原创文章,允许转载,但转载时请务必以超链接形式标明文章的原始出处和作者信息。请尊重本人的劳动成果,谢谢!
小祥的BLOG http://xfxsworld.cnblogs.com