在Unity Shader中會經常在SubShader中使用Tags,我們來看下其中的RenderType
SubShader{
Tags{"RenderType"="Opaque" "Queue"="Geometry"}
...
}
我們來看下官方文檔的說明
RenderType tag
RenderType
tag categorizes shaders into several predefined groups, e.g. is is an opaque shader, or an alpha-tested shader etc. This is used by Shader Replacement and in some cases used to produce camera’s depth texture.
RenderType標簽將著色器分類為若干預定義組,例如是一個不透明的著色器,或alpha測試的著色器等。被用于著色器替換,或者在某些情況下用于生成相機的深度紋理。
所有Unity 內置的著色器,都設置了一個RenderType類型,便于渲染時的著色器替換。
內置的RenderType類型有:
Opaque: 用于大多數著色器(法線著色器、自發光著色器、反射著色器以及地形的著色器)。
Transparent:用于半透明著色器(透明著色器、粒子著色器、字體著色器、地形額外通道的著色器)。
TransparentCutout: 蒙皮透明著色器(Transparent Cutout,兩個通道的植被著色器)。
Background: Skybox shaders. 天空盒著色器。
Overlay: GUITexture, Halo, Flare shaders. 光暈著色器、閃光著色器。
TreeOpaque: terrain engine tree bark. 地形引擎中的樹皮。
TreeTransparentCutout: terrain engine tree leaves. 地形引擎中的樹葉。
TreeBillboard: terrain engine billboarded trees. 地形引擎中的廣告牌樹。
Grass: terrain engine grass. 地形引擎中的草。
GrassBillboard: terrain engine billboarded grass. 地形引擎何中的廣告牌草。
更多參考:https://docs.unity3d.com/Manual/SL-ShaderReplacement.html