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 的旧版内置着色器的
 RenderTypeSubShader 标签列在 着色器替换页面 上。
 您还可以为自定义 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 指令