Version: Unity 6.7 Alpha (6000.7)
Language : English
SubShader in ShaderLab reference
LOD directive in ShaderLab reference

SubShader block in ShaderLab reference

Important: The Built-In Render Pipeline is deprecated and will be made obsolete in a future release.
It remains supported, including bug fixes and maintenance, through the full Unity 6.7 LTS lifecycle.
For more information on migration, refer to Migrating from the Built-In Render Pipeline to the Universal Render Pipeline and Render pipeline feature comparison.

To define a SubShader in ShaderLab, you use a SubShader block. This page contains information on using SubShader blocks.

Inside the SubShader block, you can:

To target a subshader at a specific render pipeline, use the RenderPipeline tag. For more information, refer to SubShader tags in ShaderLab reference.

Render pipeline compatibility

Feature name Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom SRP Built-in Render Pipeline
ShaderLab: SubShader block Yes Yes Yes Yes

Syntax

Signature Function
SubShader
{
    <optional: LOD>
    <optional: tags>
    <optional: commands>
    <One or more Pass definitions>
}
Defines a SubShader.

You can define as many Passes as you like within a SubShader.

Additional resources

SubShader in ShaderLab reference
LOD directive in ShaderLab reference