什么是shaderLab
更高一层的渲染抽象层。
Properties 属性--出现在材质面板,可配置。
SubShader
定义一些列pass以及可选的状态(RenderSetup)和标签(tag)的设置,每个pass定义了一次完整的渲染流程。
- Cull: Cull Back|Front|Off 设置剔除模式,剔除背面/正面/关闭剔除
- ZTest: ZTest Less Greater|LEqual|GEqual|NotEqual|Always 深度测试时使用的函数
- ZWrite: ZWrite On|Off 开启|关闭深度写入
- Blend: Blend SrcFactor DstFactor 开启并设置混合模式
-
Offset:OffsetFactor, OffsetUnits Set Z buffer depth offset
-
ColorMask: RGB | A | 0 | any combination of R, G, B, A 写入颜色通道,0关闭颜色通道的写入
https://docs.unity3d.com/Manual/SL-Pass.html
SubShader中的标签指明是如何渲染这个对象。
Pass语义块
定义name后,可通过UserPass进行引用 UserPass "路径/NAME"
Pass{
name
Tags
RenderSetup
.....
CGPROGRAM
......
ENDCG
}
pass中的标签指明怎么渲染物体。
- LightMode:定义该pass在unity的渲染流水线中的角色。Tag{"LightMode"="ForwardBase"}
Always: Always rendered; no lighting is applied.
ForwardBase: Used in Forward rendering, ambient, main directional light, vertex/SH lights and lightmaps are applied.
ForwardAdd: Used in Forward rendering; additive per-pixel lights are applied, one pass per light.
Deferred: Used in Deferred Shading; renders g-buffer.
ShadowCaster: Rend