Alpha混合通常是为了实现透明效果,透明效果的程度通过alpha值来控制
混合公式
OutputPixel = SourcePixel
⊗
SourceBlendFactor + DestPixel
⊗
DestBlendFactor
-
OutputPixel
—混合后的颜色 -
SourcePixel
—源像素,即当前正在计算的像素的颜色 -
SourceBlendFactor
—源颜色的百分比 -
DestPixel
—目标像素,即已经绘制的像素颜色(在back buffer中) -
DestBlendFactor
—目标像素颜色的百分比
⊗
表示分量乘积
unity中语法如下
Blend Off 不混合
Blend SrcFactor DstFactor 其中SrcFactor是源系数,DstFactor是目标系数
属性(SrcFactor, DstFactor上可填的值)
One 1
Zero 0
SrcColor 源颜色 例如(0.5,0.4,1)
SrcAlpha 源alpha
DstColor
目标颜色
DstAlpha
目标alpha
OneMinusSrcColor (1,1,1) – SrcColor
OneMinusSrcAlpha 1- SrcAlpha
OneMinusDstColor
(1,1,1) – DstColor
OneMinusDstAlpha
1- DstAlpha
经常使用的类型如下:
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency
Blend One OneMinusSrcAlpha // Premultiplied transparency
Blend One One // Additive
Blend OneMinusDstColor One // Soft Additive
Blend DstColor Zero // Multiplicative
Blend DstColor SrcColor // 2x Multiplicative
参考:
http://blog.sina.com.cn/s/blog_471132920101d8z5.html
https://docs.unity3d.com/Manual/SL-Blend.html
http://www.cnblogs.com/graphics/archive/2012/08/23/2643086.html