【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开始探索游戏渲染】专栏-直达

(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

相关推荐
Allen747420 小时前
ComfyUI 自动化生产 3D资产 工作流笔记
图像处理·opencv·unity·自然语言处理·3d模型生成·confyui
nnsix1 天前
Unity Windows11 打字中文显示不出来输入法的候选框
unity
adogai1 天前
unity mcp接入 实现一句话生成游戏!
游戏·unity·游戏引擎
mxwin2 天前
Unity Shader 逐像素光照 vs 逐顶点光照性能与画质的权衡策略
unity·游戏引擎·shader·着色器
CDN3602 天前
游戏盾导致 Unity/UE 引擎崩溃的主要原因排查?
游戏·unity·游戏引擎
mxwin2 天前
Unity URP 全局光照 (GI) 完全指南 Lightmap 采样与实时 GI(光照探针、反射探针)的 Shader 集成
unity·游戏引擎·shader·着色器
mxwin2 天前
Unity URP 溶解效果基于噪声纹理与 clip 函数实现物体渐隐渐显
unity·游戏引擎·shader
CheerWWW2 天前
GameFramework——Download篇
笔记·学习·unity·c#
mxwin2 天前
Unity URP 下的 Early-Z / Depth Prepass 解决复杂片元着色器造成的 Overdraw 问题
unity·游戏引擎·着色器
mxwin2 天前
Unity Shader 顶点色:利用模型顶点颜色传递渲染数据
unity·游戏引擎·shader