To define a SubShader in ShaderLabUnity’s language for defining the structure of Shader objects. More info
See in Glossary, you use a SubShader block. This page contains information on using SubShader blocks.
Inside the SubShader block, you can:
LOD block. See assigning a LOD value to a SubShader.Tags block. See ShaderLab: assigning tags to a SubShader.Pass block. See ShaderLab: defining a Pass.PackageRequirements block. This makes Unity only run the SubShader if the required packages are installed. See ShaderLab: specifying package requirements.| Feature name | Universal Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info See in Glossary (URP) | High Definition Render Pipeline (HDRP) | Custom SRP | Built-in Render Pipeline | 
|---|---|---|---|---|
| ShaderLab: SubShader block | Yes | Yes | Yes | Yes | 
| 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. |