1. 透明度混合
-
Unity提供的混合命令——Blend
-
计算新的颜色
源颜色的混合因子SrcFactor设为SrcAlpha, 目标颜色的混合因子DstFactor设为OneMinusSrcAlhpa
2 ShaderLab的混合命令
- 源颜色(source color),指的是由片元着色器产生的颜色值
- 目标颜色(destination color),从颜色缓冲中读取到的颜色值
- 输出颜色 源颜色和目标颜色进行混合后得到的输出颜色,我们用O表示,它会重新写入到颜色缓冲中
- 所有的颜色都包含了RGBA四个通道的值
-
两个混合等式(blend equation)
- 一个用于混合RGB通道
- 一个用于混合A通道
-
ShaderLab中设置混合因子的命令
-
将使用同样的混合因子来混合RGB通道和A通道
-
ShaderLab中的混合因子
-
ShaderLab中的混合操作
8.6.3 常见的混合类型
// 正常(Normal),即透明度混合
Blend SrcAlpha OneMinusSrcAlpha
// 柔和相加(Soft Additive)
Blend OneMinusDstColor One
// 正片叠底(Multiply),即相乘
Blend DstColor Zero
// 两倍相乘(2x Multiply)
Blend DstColor SrcColor
// 变暗(Darken)
BlendOp Min
Blend One One
// 变亮(Lighten)
BlendOp Max
Blend One One
// 滤色(Screen)
Blend OneMinusDstColor One
// 等同于
Blend One OneMinusSrcColor
// 线性减淡(Linear Dodge)
Blend One One