Синтаксис ShaderLab: Blending
Синтаксис ShaderLab: Stencil
Синтаксис ShaderLab: тэги Pass
Проходы используют тэги чтобы сообщить движку рендера о том, когда и как их надо обрабатывать.
Синтаксис
Tags { "TagName1" = "Value1" "TagName2" = "Value2" }
Устанавливает значение Value1 в TagName1, Value2 в TagName2. Можно использовать сколько угодно тегов.
Детали
Обычно тэги это пары ключ-значение. Внутри Pass тэги используются для управления ролью прохода в конвейере освещения (ambient, vertex lit, pixel lit и т.д.) и другими настройками. Учитывайте, что последующие тэги используемые в Unity должны быть указаны внутри секции Pass, а не внутри SubShader!
LightMode tag
LightMode tag defines Pass’ role in the lighting pipeline. See render pipeline for details. These tags are rarely used manually; most often shaders that need to interact with lighting are written as Surface Shaders and then all those details are taken care of.
Possible values for LightMode tag are:
-
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: Renders object depth into the shadowmap or a depth texture.
-
PrepassBase: Used in legacy Deferred Lighting, renders normals and specular exponent.
-
PrepassFinal: Used in legacy Deferred Lighting, renders final color by combining textures, lighting and emission.
-
Vertex: Used in legacy Vertex Lit rendering when object is not lightmapped; all vertex lights are applied.
-
VertexLMRGBM: Used in legacy Vertex Lit rendering when object is lightmapped; on platforms where lightmap is RGBM encoded (PC & console).
-
VertexLM: Used in legacy Vertex Lit rendering when object is lightmapped; on platforms where lightmap is double-LDR encoded (mobile platforms).
RequireOptions tag
A pass can indicate that it should only be rendered when some external conditions are met. This is done by using RequireOptions tag, whose value is a string of space separated options. Currently the options supported by Unity are:
-
SoftVegetation: Render this pass only if Soft Vegetation is on in Quality Settings.
См. также
SubShaders can be given Tags as well, see SubShader Tags.
Синтаксис ShaderLab: Blending
Синтаксис ShaderLab: Stencil