【URP】Unity[内置Shader]着色器模型分类
【从UnityURP开始探索游戏渲染】专栏-直达
- URP中主要包含以下几种着色模型
- Lit 光照
- Complex Lit 复杂光照
- Simple Lit 简单光照
- Baked Lit 烘焙光照
- Unlit 非光照
- Terrain Lit 地形光照
- Particles Lit 粒子光照
- Particles Simple Lit 粒子简单光照
- Particles Unlit 粒子非光照
物理基准着色器 (Physically Based Shading)
原理:
物理基准着色器是基于物理渲染(PBR)原理的着色模型,它模拟光线与材质表面的物理交互行为。该模型遵循能量守恒定律,使用金属度/粗糙度工作流或镜面反射/光泽度工作流来描述材质属性。
- 该着色模型遵循以下原则:
- 能量守恒 Energy conservation:表面反射光的量不会超过其接收到的全部光能,除非对象本身会发光(如霓虹灯)。
- 微观几何 Microgeometry:物体表面在微观层面存在几何结构。一些物体拥有平滑的微观几何,呈现出类似镜面的反射;另一些物体较粗糙,看起来更暗淡。在 URP 中,你可以通过调节物体表面的平滑度来模拟这种效果。
光线照射到物体表面时,部分光会被反射,部分光会折射。反射光被称为镜面反射(Specular Reflection),其强度取决于摄像机方向和光线入射角(angle of incidence)。该模型中,镜面高光的形状用 GGX 函数进行近似。
对于金属表面,表面会吸收并改变光线;对于非金属(也称介电质(dielectric))表面,光线被部分反射。
光衰减仅受光照强度的影响,这意味着不必增大光的范围来调整衰减。
更多物理基于渲染 (PBR) 的原理,参阅 Joe Wilson 在 Marmoset 编写的详细介绍。
特点:
- 使用微表面理论模拟表面细节
- 区分金属和非金属材质的光照响应
- 支持环境光遮蔽和间接光照
- 提供高度可定制的材质参数
内置着色器:
- Universal Render Pipeline/Lit (标准PBR着色器)
- Universal Render Pipeline/Complex Lit (支持更多贴图通道的高级PBR着色器)
- Universal Render Pipeline/TerrainLit (地形标准PBR着色器)
- Universal Render Pipeline/Baked Lit (用于光照贴图的PBR着色器)
- Universal Render Pipeline/Particles Lit (用于粒子光照贴图的PBR着色器)
简单着色 (Simple Shading)
原理:
简单着色模型提供基本的漫反射和高光计算,不遵循严格的物理规则,计算量较小。它使用兰伯特漫反射和冯氏高光模型,适合性能要求较高的场景或风格化渲染。
在简单着色模型中,材质分别反射漫反射和镜面光,但二者之间并无能量关联。由于材质属性的设置,物体反射的总光量可能会超出入射光量。此外镜面反射强度仅随摄像机方向变化。
光衰减仅受光照强度影响。
特点:
- 计算开销低
- 不依赖复杂的材质参数
- 适合移动平台或低端硬件
- 可用于卡通渲染等非真实感渲染
内置着色器:
- Universal Render Pipeline/Simple Lit (基础光照着色器)
- Universal Render Pipeline/Particles Simple Lit (粒子基础光照着色器)
烘焙着色 (Baked Shading)
原理:
烘焙着色模型使用预计算的光照信息(光照贴图)来渲染物体,运行时不需要进行实时光照计算。光照信息在编辑器阶段通过光照烘焙生成,存储在纹理中。
采用烘焙着色模型的材质不支持实时光照,只能通过烘焙光照(如 lightmaps 或 Light Probes)接收光照。这在性能开销较小的前提下为场景增加一定深度,非常适合运行在低端平台上的游戏。
URP 的 Baked Lit Shader 是唯一使用烘焙着色模型的着色器。
特点:
- 运行时性能极高
- 光照效果是静态的
- 支持全局光照效果
- 需要提前烘焙光照
内置着色器:
- Universal Render Pipeline/Baked Lit (支持光照贴图的着色器)
- Universal Render Pipeline/Lit (当配置为烘焙光照时)
无光照 (Unlit)
原理:
无光照模型完全跳过光照计算,仅使用材质的基础颜色或纹理进行渲染。它是最简单的着色模型,适用于UI元素、全息效果或特殊视觉风格。
URP 提供了一些无光照类型(unlit-type)的着色器。使用此类着色器的材质既不会受到实时光照,也不受烘焙光照影响。无光照着色器能让你为场景中的对象创造独特的视觉风格,其编译速度也比含光照的着色器快得多。
特点:
- 完全不考虑光照
- 性能最优
- 可用于发光物体或自发光效果
- 适合需要完全控制外观的情况
内置着色器:
- Universal Render Pipeline/Unlit (基础无光照着色器)
- Universal Render Pipeline/ParticlesUnlit (粒子基础无光照着色器)
对比总结
| 着色模型 | 光照类型 | 性能需求 | 典型场景 |
|---|---|---|---|
| PBR | 实时物理光照 | 高 | 写实3D、高端平台 |
| Simple Lit | 简化实时光照 | 中 | 风格化渲染、移动端 |
| Baked Lit | 烘焙光照 | 低 | 静态场景、性能优化 |
| Unlit | 无光照 | 最低 | 特效、UI、低端设备 |
每种着色模型在URP中都有特定的应用场景,开发者可以根据项目需求在性能和质量之间做出权衡选择。物理基准着色器适合追求真实感的场景,简单着色适合移动或风格化项目,烘焙着色适合静态环境,而无光照则用于特殊效果或UI元素。
【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

URP中主要包含以下几种着色模型 Lit 光照 Complex Lit 复杂光照 Simple Lit 简单光照 Baked Lit 烘焙光照 Unlit 非光照 Terrain Lit 地形光照 P
浙公网安备 33010602011771号