# 【渲染设置】

写在 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)

常用示例:

Markdown 图片

  • 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 One

  • Lighten [Src * One Max Dst * One ]

    BlendOp Max
    Blend One One

  • Screen [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"
}