# 【渲染设置】
写在 Pass 下的 CGPROGRAM 上方的渲染设置。
# 混合
基本公式:
[Src * A Op Dst * B ]
Src :源,当前Shader绘制的结果。
Dst :目标,当前Shader绘制前的背景。
A :源乘子,可配置。
B :目标乘子,可配置。
Op :可配置(Add,Subtract,ReverseSubtract,Min,Max),默认 Add。
混合因子A、B可选项:
可选项 | 值 |
---|---|
Zero | (0,0,0,0) |
One | (1,1,1,1) |
DstColor | (Rd,Gd,Bd,Ad) |
SrcColor | (Rs,Gs,Bs,As) |
OneMinusDstColor | (1-Rd,1-Gd,1-Bd,1-Ad) |
SrcAlpha | (As,As,As,As) |
OneMinusSrcColor | (1-Rs,1-Gs,1-Bs,1-As) |
DstAlpha | (Ds,Ds,Ds,Ds) |
OneMinusDstAlpha | (1-Ad,1-Ad,1-Ad,1-Ad) |
OneMinusSrcAlpha | (f,f,f,1);where f = min(As,1-Ad) |
SrcAlphaSaturate | (1-As,1-As,1-As,1-As) |
常用示例:
Normal [Src * SrcAlpha Add Dst * OneMinusSrcAlpha ]
Blend SrcAlpha OneMinusSrcAlpha
Sort Additive [Src * OneMinusDstColor + Dst * One ]
Blend OneMinusDstColor One
Multiply [Src * DstColor Add Dst * Zero ]
Blend DstColor Zero
2x Multiply [Src * DstColor Add Dst * SrcColor ]
Blend DstColor SrcColor
Darken [Src * One Min Dst * One ]
BlendOp Min
Blend One OneLighten [Src * One Max Dst * One ]
BlendOp Max
Blend One OneScreen [Src * OneMinusDstColor Add Dst * One ]
Blend OneMinusDstColor One
Linear Dodge [Src * One Add Dst * One ]
Blend One One
# 深度写入
深度:越接近摄像机,越接近0,越远离摄像机,越接近1。
注意:半透明Shader需要关闭写入深度。
- 写入深度
ZWrite On
(默认) - 不写入深度
ZWrite Off
# 深度测试
例如LEqual:当前片元深度值(小于等于)深度缓冲值时。表示测试通过,可以进行显示。 深度越小,越靠近摄像机。
- 小于等于
ZTest LEqual
(默认) - 大于等于
ZTest GEqual
(在某些物体后面绘制,如X光) - 总是通过
ZTest Always
(总是通过测试)
# 剔除类型
- 剔除背面
Cull Back
(默认) - 剔除正面
Cull Front
- 双面显示
Cull Off
# 渲染类型
注意:半透明Shader需要设置渲染类型和渲染顺序类型。
Tags {
"RenderType"="Transparent"
"Queue"="Transparent"
}
← 【内置变量】 【CG与WebGl差异】 →