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