【URP】Unity Shader Tags
在 Unity URP 中,Shader 的渲染标签(Tags)用于控制渲染顺序、光照处理方式和特殊效果,以下是核心标签及其选项的详细说明:
【从UnityURP开始探索游戏渲染】专栏-直达
一、基础渲染标签
RenderPipeline
- 用途:声明 Shader 兼容的渲染管线。
- 选项:必须设置为
"UniversalRenderPipeline",否则 URP 无法识别。
RenderType
- 用途:分类渲染对象(如不透明/透明),影响相机缓冲区(如深度图、颜色图)的生成。
- 选项:
"Opaque":默认不透明物体(如地形、建筑)。"Transparent":半透明物体(如玻璃、水面)。"TransparentCutout":镂空材质(如树叶)。
Queue
- 用途:控制渲染顺序优先级,数值越小越早渲染。
- 预设选项(按渲染顺序排列):
"Background"(1000):天空盒等背景。"Geometry"(2000):大多数不透明物体。"AlphaTest"(2450):需透明度测试的物体。"Transparent"(3000):半透明物体(从后向前渲染)。"Overlay"(4000):UI、后期特效3。
- 自定义数值:例如
"Queue"="Geometry+10"。
DisableBatching
- 用途:禁用动态合批处理(某些 GPU 动画需独立计算)。
- 选项:
"True"(禁用)或"False"(默认启用)。
二、光照与阴影标签
LightMode
- 用途:定义 Pass 在渲染管线中的角色。
- 关键选项:
"UniversalForward":主光照 Pass,处理直接光照、环境光、阴影。"ShadowCaster":生成物体深度图供阴影计算。"DepthOnly":仅写入深度(用于景深、雾效等后处理)。"SRPDefaultUnlit":无光照渲染(如 UI、粒子)。
IgnoreProjector
- 用途:忽略投影器(Projector)影响(URP 中较少使用)。
- 选项:
"True"(忽略)。
三、高级功能标签
ForceNoShadowCasting
- 用途:强制禁用阴影投射(如透明材质)。
- 选项:
"True"。
PreviewType
- 用途:在材质预览窗口中的显示方式。
- 选项:
"Plane"(平面)、"Sphere"(球体)等。
四、URP 与前向渲染的关联
URP 默认使用前向渲染路径,其光源处理规则如下:
- 重要光源(如主方向光):通过
"UniversalForward"Pass 逐像素计算。 - 附加光源:在额外的
"UniversalForward"Pass 中叠加(受Pixel Light Count数量限制)。 - 顶点光源/SH 光照:超出像素光源上限的光源以低精度方式补偿。
⚠️ 注意事项
- URP 中
"LightMode"的值需严格匹配管线阶段(如"UniversalForward")。 - 深度写入控制(如
ZWrite On/Off)需配合"Queue"调整,避免半透明物体遮挡错误
【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

本文详细介绍了Unity URP中Shader渲染标签的核心功能及用法。主要内容包括:基础标签(RenderPipeline、RenderType、Queue等)用于控制渲染顺序和对象分类;光照标签(LightMode)定义Pass在管线中的角色;高级功能标签(如阴影控制)。文章还解释了URP前向渲染路径的光源处理规则,并强调正确匹配标签值与管线阶段的重要性,以及深度写入与渲染队列的配合注意事项。
浙公网安备 33010602011771号