颜色混合的公式为 Cf=CsXF OP CdXF
其中Cf为最终像素的颜色,Cs为将要渲染的像素的颜色,Cd为目标的像素颜色,即已经渲染到缓冲区的像素的颜色。X为叉乘,为ARGB各个分量都需要进行乘法。F为混合因子,也就是叉乘的对象。结果决定了两个像素点的颜色混合了后该呈现什么颜色,可以实现透明的效果。OP为混合方法。

常用的混合方法有相加,相乘,相减。

常用的混合因子有:
D3DBLEND_ZERO: 混合因子是(0,0,0,0),可以将特定的像素点消去,比如将src覆盖在dest像素之上。
D3DBLEND_ONE: 混合因子是(1,1,1,1)。
D3DBLEND_SRCCOLOR:混合因子是(Rs,Gs,Bs,As)。
D3DBLEND_DESTCOLOR:混合因子是(Rd,Gd,Bd,Ad)。
D3DBLEND_SRCALPHA:混合因子是(As,As,As,As)。很常用,比如要实现透明效果,需要将src乘以某个透明值,然后dest上用1-As来进行相加的混合。
D3DBLEND_INVSRCALPHA:混合因子是(1-As,1-As,1-As,1-As),通常和上面一个联合使用,实现透明的效果。

共 0 条回复
暂时没有人回复哦,赶紧抢沙发
发表新回复

作者

sryan
today is a good day