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 参考中的 UsePass 指令