【从UnityURP开始探索游戏渲染】专栏-直达
在 Unity URP 中,Shader 的渲染标签(Tags)用于控制渲染顺序、光照处理方式和特殊效果,以下是核心标签及其选项的详细说明:
一、基础渲染标签
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开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)