一个 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 对象包含一个或多个子着色器。子着色器允许您为不同的硬件、渲染管线一系列操作,将场景的内容显示在屏幕上。Unity 允许您从预制渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表 和运行时设置定义不同的 GPU 设置和着色器程序。一些 着色器对象着色器类的实例,着色器对象是着色器程序和 GPU 指令的容器,以及告知 Unity 如何使用它们的的信息。将它们与材质一起使用来确定场景的外观。 更多信息
参见 术语表 仅包含一个子着色器;其他则包含多个子着色器以支持一系列不同的配置。
有关着色器对象的工作原理以及着色器对象、子着色器和通道之间的关系的信息,请参见 着色器对象简介。
在 ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
参见 术语表 中,您可以通过将 SubShader
块放在 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.
}
}
}