找回密码
 立即注册
首页 业界区 业界 【URP】Unity Shader Tags

【URP】Unity Shader Tags

裒噎 昨天 15:01
在 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


  • 用途‌:在材质预览窗口中的显示方式。
  • 选项‌:"lane"(平面)、"Sphere"(球体)等‌。
四、URP 与前向渲染的关联

URP 默认使用‌前向渲染路径‌,其光源处理规则如下‌:

  • 重要光源‌(如主方向光):通过 "UniversalForward" Pass 逐像素计算。
  • 附加光源‌:在额外的 "UniversalForward" Pass 中叠加(受 Pixel Light Count 数量限制)。
  • 顶点光源/SH 光照‌:超出像素光源上限的光源以低精度方式补偿。
⚠️ ‌注意事项


  • URP 中 "LightMode" 的值需严格匹配管线阶段(如 "UniversalForward")‌。
  • 深度写入控制(如 ZWrite On/Off)需配合 "Queue" 调整,避免半透明物体遮挡错误‌
【从UnityURP开始探索游戏渲染】专栏-直达

(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册