Version: 6000.3
语言: 中文
ShaderLab 参考中的 LOD 指令
ShaderLab 参考中的 UsePass 指令

ShaderLab 中的子着色器标记参考

此页面包含有关使用TagsShaderLabUnity 用于定义 Shader 对象结构的语言。更多信息
请参阅术语表
代码,将标签分配给子着色器。

有关定义子着色器的信息,请参阅 ShaderLab:定义子着色器。有关如何着色器在 GPU 上运行的程序。更多信息
请参阅术语表
对象有效,以及着色器对象、子着色器和通道之间的关系,请参阅着色器对象Shader类的实例,Shader 对象是着色器程序和 GPU 指令的容器,以及告诉 Unity 如何使用它们的信息。将它们与材质一起使用,以确定场景的外观。更多信息
请参阅术语表
.

渲染管线兼容性

功能名称 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP)
高清渲染管线 (HDRP) 定制 SRP 内置渲染管线
ShaderLab:SubShader Tags 块 是的 是的 是的 是的
ShaderLab:RenderPipeline SubShader 标签 是的 是的
ShaderLab:队列子着色器标签 是的 是的



注意在自定义 SRP 中,您可以定义自己的渲染顺序并选择是否使用渲染队列。有关详细信息,请参阅 DrawingSettings 和 SortingCriteria。
是的
ShaderLab:RenderType SubShader 标签 是的 是的 是的 是的
ShaderLab:DisableBatching SubShader 标签 是的 是的 是的 是的
ShaderLab:ForceNoShadowCasting 子着色器标签 是的

这将禁用常规阴影,但对接触阴影没有影响。
是的 是的
ShaderLab:CanUseSpriteAtlas SubShader 标签 是的 是的 是的 是的
ShaderLab:PreviewType SubShader 标签 是的 是的 是的 是的

语法

签名 功能
标签 { “[name1]” = “[value1]”, “[name2]” = “[value2]”} 将给定的标签应用于子着色器。

您可以根据需要定义任意数量的标签。

RenderPipeline 标签

签名 功能
“RenderPipeline” = “[名称]” 告诉 Unity 此子着色器是否与 URP 或 HDRP 兼容。
参数 价值 功能
[姓名] UniversalPipeline 此子着色器仅与URP兼容。
HDRenderPipeline 此子着色器仅与 HDRP 兼容。
(任何其他值,或未声明) 此子着色器与 URP 或 HDRP 不兼容。

队列标记

签名 功能
“队列” = “[队列名称]” 使用命名的渲染队列。
“队列” = “[队列名称] + [偏移量]” 使用未命名的队列,在与命名队列的给定偏移量处。

这在透明水的情况下有用,您应该在不透明对象之后但在透明对象之前绘制。
签名 价值 功能
[队列名称] 背景 指定后台渲染队列。
几何学 指定几何体渲染队列。
阿尔法测试 指定 AlphaTest 渲染队列。
透明 指定透明渲染队列。
覆盖 指定叠加渲染队列。
[偏移] 整数 指定 Unity 渲染未命名队列的索引,相对于命名队列。

RenderType 标记

签名 功能
“RenderType” = “[renderType]” 设置此子着色器的 RenderType 值。
签名 价值 功能
[渲染类型] 字符串 此参数没有设置值。若要确定要替换的任何子着色器的 RenderType 值,请打开其着色器源文件。

RenderTypeUnity 旧版内置着色器的 SubShader 标记列在着色器替换页面上。

你还可以为自定义子着色器创建自己的值。

ForceNoShadowCasting 标签

签名 功能
“ForceNoShadowCasting” = “[状态]” 是否防止使用此子着色器的所有几何体投射阴影(有时是接收阴影)。
签名 价值 功能
[状态] Unity 可防止此子着色器中的几何体投射阴影。

在内置渲染管线中,使用 Forward 或 Legacy Vertex Lit 渲染路径,Unity 还会阻止此子着色器中的几何体接收阴影。

在 HDRP 中,这不会阻止几何体投射接触阴影。
Unity 不会阻止此子着色器中的几何体投射或接收阴影。这是默认值。

DisableBatching 标记

签名 功能
“DisableBatching” = “[状态]” Unity 是否阻止动态批处理 (Dynamic Batching)一种自动 Unity 过程,它尝试将多个网格体渲染为单个网格体,以优化图形性能。该技术转换 CPU 上的所有游戏对象顶点,并将许多相似的顶点组合在一起。更多信息
请参阅术语表
适用于使用此子着色器的所有几何体。
签名 价值 功能
[状态] Unity 会阻止使用此子着色器的几何体进行动态批处理。
Unity 不会阻止使用此子着色器的几何体进行动态批处理。这是默认值。
LOD衰落 Unity 会阻止对属于 LODGroup 且 Fade Mode 值不是 None 的所有几何体进行动态批处理。否则,Unity 不会阻止动态批处理。

IgnoreProjector 标签

签名 功能
“忽略投影仪” = “[状态]” Unity 在渲染此几何体时是否忽略投影仪。
签名 价值 功能
[状态] Unity 在渲染此几何体时忽略投影仪。
Unity 在渲染此几何体时不会忽略投影仪。这是默认值。

PreviewType 标记

PreviewTypeSubShader Tag 告诉 Unity 编辑器如何在材质中显示使用此 SubShader 的材质检查器一个Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
.

签名 功能
“预览类型” = “[形状]” Unity 编辑器使用哪种形状来显示使用此子着色器的材质的预览。
签名 价值 功能
[形状] 在球体上显示材质。这是默认值。
飞机 在平面上显示材质。
天空盒一种特殊类型的材质,用于表示天空。通常是六边形的。更多信息
请参阅术语表
在天空盒上显示材质。

其他资源

ShaderLab 参考中的 LOD 指令
ShaderLab 参考中的 UsePass 指令