D3D中的混合指的是目标像素(后台缓冲)与源像素(光栅化像素)混合(blend)输出的过程。
一、影响最终的混合后输出结果的因素有两个:混合因子,混合方法。
1)混合因子
混合因子共有15个。注意:有些混合因子以_COLOR结尾,有的以_ALPHA结尾。其中以_COLOR结尾的混合因子不能用于APPHA混合方程
混合因子分为源混合因子,目标混合因子。区别在于,前者指定的是源像素的比例,后者指定的是目标像素的比例。
2)混合方法
混合方法有5中,一般常用的就是加、减、乘。
3)混合因子与混合方法的常用组合使用示例
1.屏蔽颜色写入,当我们希望屏蔽后台缓冲只向深度缓冲写入数据时。我们可以这样干,将源像素混合因子设为D3D10_BLEND_ZERO,目标像素混合因子设为D3D10_BLEND_ONE,混合方法设为D3D10_BLEND_OP_ADD
2.像素相加减 。源像素混合因子设为D3D10_BLEND_ONE,目标像素混合因子设为D3D10_BLEND_ONE,混合方法设为D3D10_BLEND_OP_ADD/SUBTRACT
3.像素相乘 。源像素混合因子设为D3D10_BLEND_ZERO,目标像素混合因子设为D3D10_BLEND_SRC_COLOR,混合方法设为D3D10_BLEND_OP_ADD
4.透明效果。 使用源像素的(光栅化像素)的ALPHA分量控制源像素的透明度。将源混合因子设为D3D10_BLEND_SRC_ALPHA,将目标混合因子设为D3D10_BLEND_INV_SRC_ALPHA,混合运算设为D3D10_BLEND_OP_ADD。