Shader 对象包含一个或多个子着色器 (SubShader)。通过子着色器您可以为不同的硬件、渲染管线和运行时设置定义不同的 GPU 设置和着色器程序。某些 Shader 对象只包含一个子着色器;另一些包含多个子着色器以支持一系列不同的配置。
有关 Shader 对象的工作原理以及 Shader 对象、子着色器与通道之间关系的信息,请参阅 Shader 对象简介。
在__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary 中,通过将 SubShader 代码块置于 Shader 代码块中,可以定义子着色器。
此示例代码演示了用于创建包含单个子着色器的 Shader 对象的语法,而子着色器又包含一个通道。
Shader "Examples/SinglePass"
{
SubShader
{
Tags { "ExampleSubShaderTagKey" = "ExampleSubShaderTagValue" }
LOD 100
// ShaderLab commands that apply to the whole SubShader go here.
Pass
{
Name "ExamplePassName"
Tags { "ExamplePassTagKey" = "ExamplePassTagValue" }
// ShaderLab commands that apply to this Pass go here.
// HLSL code goes here.
}
}
}