ShaderLab 中的 UsePass 指令参考
ShaderLab 中的子着色器标签参考
本页面介绍了在__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary 代码中使用 Tags 代码块从而为子着色器分配标签的信息。
如需了解子着色器的定义,请参阅 ShaderLab:定义子着色器。如需了解着色器对象的工作原理以及着色器对象、子着色器和通道之间的关系,请参阅着色器对象。
渲染管线兼容性
| 功能名称 |
通用渲染管线 (URP) |
高清渲染管线 (HDRP) |
自定义 SRP |
内置渲染管线 |
| ShaderLab:子着色器标签代码块 |
是 |
是 |
是 |
是 |
| ShaderLab:RenderPipeline 子着色器标签 |
是 |
是 |
否 |
否 |
| ShaderLab:Queue 子着色器标签 |
是 |
是
|
是
注意:在自定义 SRP 中,您可以定制渲染顺序并选择是否要使用渲染队列。详情请参阅 DrawingSettings 和 SortingCriteria。 |
是 |
| ShaderLab:RenderType 子着色器标签 |
是 |
是 |
是 |
是 |
| ShaderLab:DisableBatching 子着色器标签 |
是 |
是 |
是 |
是 |
| ShaderLab:ForceNoShadowCasting 子着色器标签 |
是 |
是
这会禁用常规阴影,但是不影响接触阴影。 |
是 |
是 |
| ShaderLab:CanUseSpriteAtlas 子着色器标签 |
是 |
是 |
是 |
是 |
| ShaderLab:PreviewType 子着色器标签 |
是 |
是 |
是 |
是 |
语法
| 签名 |
功能 |
| 标签 { “[name1]” = “[value1]” “[name2]” = “[value2]”} |
为子着色器应用给定的标签。
可添加任意数量的标签。 |
RenderPipeline 标签
| 签名 |
功能 |
| “RenderPipeline” = “[名称]” |
告知 Unity 此子着色器是否兼容 URP 或 HDRP。 |
| 参数 |
值 |
功能 |
| [名称] |
UniversalPipeline |
此子着色器仅兼容 URP。 |
|
HDRenderPipeline |
此子着色器仅兼容 HDRP。 |
|
(任何其他值,或未声明) |
此子着色器不兼容 URP 和 HDRP。 |
Queue 标签
| 签名 |
功能 |
| “Queue” = “[查询名称]” |
使用已命名的渲染队列。 |
| “Queue” = “[查询名称] + [偏移]” |
在相对于命名队列的给定偏移处使用未命名队列。
这种用法适用的一种情况为透明的水,您应该在不透明物体之后、透明物体之前绘制透明水域。 |
| 签名 |
值 |
功能 |
| [查询名称] |
Background |
指定背景渲染队列。 |
|
Geometry |
指定几何体渲染队列。 |
|
AlphaTest |
指定 AlphaTest 渲染队列。 |
|
Transparent |
指定透明渲染队列。 |
|
Overlay |
指定覆层渲染队列。 |
| [偏移] |
integer |
指定 Unity 渲染未命名队列处相对于已命名队列的索引。 |
RenderType 标签
| 签名 |
功能 |
| “RenderType” = “[renderType]” |
为此子着色器设置 RenderType 值。 |
| 签名 |
值 |
功能 |
| [renderType] |
String |
参数未被设置值。要标识待替换子着色器的 RenderType 值,请打开其着色器源文件。
Unity 旧版内置着色器的 RenderType 子着色器标签见着色器替换页面。
您还可以为自定义的子着色器创建自定义的值。 |
ForceNoShadowCasting 标签
| 签名 |
功能 |
| “ForceNoShadowCasting” = “[状态]” |
是否对所有使用此子着色器的几何体阻止阴影投射(或接收)。 |
| 签名 |
值 |
功能 |
| [状态] |
True |
Unity 会阻止此子着色器内的几何体投射阴影。
在内置渲染管线中,使用前向或旧版顶点光照渲染路径时,Unity 还会阻止此子着色器内的几何体接收阴影。
在 HDRP 中,这不会阻止几何体投射接触阴影。 |
|
False |
Unity 不会阻止此子着色器内的几何体投射或接收阴影。False 为默认值。 |
DisableBatching 标签
| 签名 |
功能 |
| “DisableBatching” = “[状态]” |
Unity 是否为所有使用此子着色器的几何体阻止动态批处理。 |
| 签名 |
值 |
功能 |
| [状态] |
True |
Unity 为使用此子着色器的几何体阻止动态批处理。 |
|
False |
Unity 不会为使用此子着色器的几何体阻止动态批处理。False 为默认值。 |
|
LODFading |
对于所有 Fade Mode 值不为 None,且属于 LODGroup 一部分的所有几何体,Unity 都会阻止动态批处理。否则,Unity 不会阻止动态批处理。 |
IgnoreProjector 标签
| 签名 |
功能 |
| “IgnoreProjector” = “[状态]” |
Unity 在渲染此几何体时是否忽略投影器。 |
| 签名 |
值 |
功能 |
| [状态] |
True |
Unity 在渲染此几何体时忽略投影器。 |
|
False |
Unity 在渲染此几何体时不会忽略投影器。False 为默认值。 |
PreviewType 标签
PreviewType 子着色器标签会告知 Unity 编辑器要如何在材质检视面板中显示使用此子着色器的材质。
| 签名 |
功能 |
| “PreviewType” = “[形状]” |
Unity 编辑器为使用此子着色器的材质显示预览时所用的形状。 |
| 签名 |
值 |
功能 |
| [形状] |
Sphere |
在球体上显示材质。False 为默认值。 |
|
Plane |
在平面上显示材质。 |
|
Skybox |
在天空盒上显示材质。 |
其他资源
ShaderLab 中的 UsePass 指令参考