【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)

原理‌:

烘焙着色模型使用预计算的光照信息(光照贴图)来渲染物体,运行时不需要进行实时光照计算。光照信息在编辑器阶段通过光照烘焙生成,存储在纹理中。

采用烘焙着色模型的材质不支持实时光照,只能通过烘焙光照(如 lightmapsLight 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开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

posted @ 2025-11-26 10:33  SmalBox  阅读(21)  评论(0)    收藏  举报