版本:Unity 6 (6000.0)
语言:English
ShaderLab 参考中的 LOD 指令
ShaderLab 参考中的 UsePass 指令

ShaderLab 参考中的 SubShader 标签

此页面包含有关在您的 ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
请参阅 术语表
代码中使用 Tags 块为 SubShader 分配标签的信息。

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

渲染管线兼容性

功能名称 通用 渲染管线一系列操作,用于获取场景的内容并在屏幕上显示它们。Unity 允许您从预构建的渲染管线中选择,或编写您自己的渲染管线。 更多信息
请参阅 术语表
(URP)
高清渲染管线 (HDRP) 自定义 SRP 内置渲染管线
ShaderLab:SubShader Tags 块
ShaderLab:RenderPipeline SubShader 标签
ShaderLab:Queue SubShader 标签



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

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

语法

签名 功能
Tags { “[name1]” = “[value1]” “[name2]” = “[value2]”} 将给定的标签应用于 SubShader。

您可以定义任意数量的标签。

RenderPipeline 标签

签名 功能
“RenderPipeline” = “[name]” 告诉 Unity 此 SubShader 是否与 URP 或 HDRP 兼容。
参数 功能
[name] UniversalPipeline 此 SubShader 仅与 URP 兼容。
HDRenderPipeline 此 SubShader 仅与 HDRP 兼容。
(任何其他值或未声明) 此 SubShader 与 URP 或 HDRP 不兼容。

Queue 标签

签名 功能
“Queue” = “[queue name]” 使用命名的渲染队列。
“Queue” = “[queue name] + [offset]” 使用未命名的队列,相对于命名队列具有给定的偏移量。

这在透明水的情况下很有用,您应该在不透明对象之后但透明对象之前绘制透明水。
签名 功能
[queue name] Background 指定 Background 渲染队列。
Geometry 指定 Geometry 渲染队列。
AlphaTest 指定 AlphaTest 渲染队列。
Transparent 指定 Transparent 渲染队列。
Overlay 指定 Overlay 渲染队列。
[offset] 整数 指定 Unity 相对于命名队列渲染未命名队列的索引。

RenderType 标签

签名 功能
“RenderType” = “[renderType]” 设置此 SubShader 的 RenderType 值。
签名 功能
[renderType] 字符串 此参数没有设置值。要识别要替换的任何 SubShader 的 RenderType 值,请打开其着色器源文件。

Unity 的旧版内置着色器的 RenderType SubShader 标签列在 着色器替换页面 上。

您还可以为自定义 SubShader 创建自己的值。

ForceNoShadowCasting 标签

签名 功能
“ForceNoShadowCasting” = “[state]” 是否阻止使用此 SubShader 的所有几何体投射阴影(有时也阻止接收阴影)。
签名 功能
[state] True Unity 阻止此 SubShader 中的几何体投射阴影。

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

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

DisableBatching 标签

签名 功能
“DisableBatching” = “[state]” Unity 是否阻止使用此 SubShader 的所有几何体的 动态批处理Unity 的一个自动过程,尝试将多个网格渲染为单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象顶点,并将许多类似顶点组合在一起。 更多信息
请参阅 术语表
签名 功能
[state] True Unity 阻止使用此 SubShader 的几何体的动态批处理。
False Unity 不会阻止使用此 SubShader 的几何体的动态批处理。这是默认值。
LODFading 对于属于 LODGroup 且淡入淡出模式值不是“无”的所有几何体,Unity 都会阻止动态批处理。否则,Unity 不会阻止动态批处理。

IgnoreProjector 标签

签名 功能
“IgnoreProjector” = “[state]” Unity 在渲染此几何体时是否忽略投影仪。
签名 功能
[state] True Unity 在渲染此几何体时忽略投影仪。
False Unity 在渲染此几何体时不忽略投影仪。这是默认值。

PreviewType 标签

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

签名 功能
“PreviewType” = “[shape]” Unity 编辑器用于显示使用此 SubShader 的材质的预览的形状。
签名 功能
[shape] Sphere 在球体上显示材质。这是默认值。
Plane 在平面上显示材质。
天空盒用于表示天空的特殊类型的材质。通常为六面体。 更多信息
请参阅 术语表
在天空盒上显示材质。

其他资源

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