Documentation

Unity Engine

Unity Engine

SubShader block in ShaderLab reference

Reference for the SubShader block in ShaderLab.
Read time 1 minuteLast updated a month ago

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.
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 blockYesYesYesYes

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