当前位置: 首页 > news >正文

【URP】Unity Shader Tags

【从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开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

http://www.dtcms.com/a/353880.html

相关文章:

  • IT66122替代IT66121-富利威
  • Day12 Gin框架学习
  • .NET周刊【8月第3期 2025-08-17】
  • 【C#】获取不重复的编码(递增,非GUID)
  • (LeetCode 面试经典 150 题) 102. 二叉树的层序遍历(广度优先搜索bfs)
  • Miniforge3替代Anaconda的一些经验总结
  • STL库——vector(类模拟实现)
  • 旧物二手回收小程序系统:让闲置旧物焕发新生,创造无限价值
  • Leetcode 深度优先搜索 (14)
  • 胶水研究记录学习1
  • 回顾websocket心跳机制以及断线重连(服务端为node)
  • 数据结构——抽象数据类型(ADT)
  • 浏览器渲染帧管线全景拆解:从像素到屏幕的 16.67 ms 之旅
  • Linux内核bitmap组件详解
  • 给Ubuntu添加新用户
  • MyBatis 之关联查询(一对一、一对多及多对多实现)
  • Ansible Playbook 概述与实践案例(下)
  • 基于muduo库的图床云共享存储项目(二)
  • STM32 之串口WIFI应用--基于RTOS的环境
  • AlphaFold 2 本地部署与安装教程(Linux)
  • ICCV 2025 | 清华IEDA提出GUAVA,单图创建可驱动的上半身3D化身!实时、高效,还能捕捉细腻的面部表情和手势。
  • 【51单片机】【protues仿真】基于51单片机篮球计时计分器数码管系统
  • 什么是代理ip?代理ip的运作机制
  • C++ 中 ::(作用域解析运算符)的用途
  • 大小鼠糖水偏爱实验系统 糖水偏好实验系统 小鼠糖水偏好实验系统 大鼠糖水偏好实验系统
  • 【半导体制造流程概述】
  • 优化IDEA卡顿的问题
  • 使用CCProxy搭建http/https代理服务器
  • AWS OpenSearch 可观测最佳实践
  • Maya绑定:人物绑定详细案例