包含此页的版本:
不含此页的版本:
在 Unity 中,当您使用属于图形管道一部分的着色器时,您通常使用着色器在 GPU 上运行的程序。更多信息
请参阅术语表类。的实例Shader类称为 Shader 对象。
Shader 对象是使用着色器程序的一种特定于 Unity 的方式;它是着色器程序和其他信息的包装器。它允许您在同一文件中定义多个着色器程序,并告诉 Unity 如何使用它们。
| 功能名称 | 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息 请参阅术语表(URP) |
高清渲染管线 (HDRP) | 定制 SRP | 内置渲染管线 |
|---|---|---|---|---|
| 着色器对象 | 是的 | 是的 | 是的 | 是的 |
Shader 对象包含着色器程序、更改 GPU 设置的说明(统称为渲染状态)以及告诉 Unity 如何使用它们的信息。
将 Shader 对象与materials(材质) 定义表面应如何渲染的资产。更多信息
请参阅术语表以确定您的外观场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表.
您可以通过两种方式创建着色器对象。每个资产都有自己的资产类型:
.shader外延。无论您以哪种方式创建 Shader 对象,Unity 都会在内部以相同的方式表示结果。
Shader 对象具有嵌套结构。它将信息组织到称为子着色器和通道的结构中。它将着色器程序组织成着色器变体。
Shader 对象包含:
还可以定义其他信息,例如共享着色器代码,或是否使用自定义编辑器。有关定义 Shader 对象的信息,请参阅 ShaderLab:定义 Shader 对象。
子着色器允许你将着色器对象分成与不同硬件、渲染管线和运行时设置兼容的部分。
子着色器包含:
你还可以定义其他信息,例如其所有通道通用的渲染状态。有关可以在子着色器中定义的所有内容的信息,请参阅 ShaderLab:定义子着色器。
通行证包含:
您还可以定义其他信息,例如名称。有关可以在通道中定义的所有内容的信息,请参阅 ShaderLab:定义通道。
Pass 包含的着色器程序被组织成着色器变体。着色器变体共享通用代码,但在启用或禁用给定关键字时具有不同的功能。
通道中的着色器变体数量取决于你在着色器代码中定义的关键字数量以及目标平台。每个通道至少包含一个变体。
有关更多信息,请参阅着色器变体Unity 根据着色器关键字及其状态的特定组合生成的着色器程序的版本。Shader 对象可以包含多个着色器变体。更多信息
请参阅术语表.