Shading models in Universal Render Pipeline

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com

URP版本:8.2.0

源参考网页

URP提供了以的下着色模型

  • 基于物理的着色模型(Physically Based Shading)
  • 简单的着色模型(Simple Shading)
  • 烘焙式光照的着色模型(Baked Lit Shading)
  • 无光照的着色模型(No lighting)

Physically Based Shading

PBS模型遵循以下原则:

  • 能量守恒定律:出射的光永远不会超过入射光的总和。唯一的例外是当物体自身是发光的
  • 微表面:具有在微观水平上的几何形状。一些对象具有光滑的微几何形状,这使它们具有镜面般的外观。其他对象具有粗糙的微几何形状,这使它们看起来更暗淡。在URP中,可以对待渲染对象的表面的平滑度进行模拟。
  • 当光线照射到待渲染对象的表面时,一部分光线会反射,一部分光线会折射进待渲染对象内部。反射的光称为镜面反射。这取决于相机的方向和光线照射表面的点(也称为入射角)而变化。在此着色模型中,镜面反射高光光斑的区域形状使用GGX函数近似。
  • 对于金属物体,表面会吸收(absorb)并改变光。对于非金属物体(也称为介电物体),表面反射光的一部分。
  • 光衰减仅受光强度影响。这意味着不必增加光的范围即可控制衰减。

以下URP着色器基于物理的着色模型实现:

注意:此阴影模型不适用于低端移动硬件。如果要使用此硬件,请使用简单的着色模型(Simple Shading)

要了解有关基于物理的渲染的更多信息,请参阅Marmoset上的Joe Wilson的blog

Simple shading

简单的着色模型(Simple Shading)基于Blinn-Phong模型。

在此简单着色模型中:

  • “反射”将分解为漫反射光和镜面反射光,并且两者之间没有关联。漫反射和镜面反射光的量,取决于为材质选择的属性,因此总反射光可能会超过总入射光。镜面反射仅随相机方向而变化。
  • 光衰减仅受光强度影响。
  • 光衰减仅受光强度影响。这意味着不必增加光的范围即可控制衰减。

以下URP着色器基于简单的着色模型实现

Baked Lit shading

烘焙式光照的着色模型没有使用实时光进行照明计算。材质可以从光照贴图(lightmap)或 光探针(lighting) 获取到**预烘焙的光照信息(baked lighting)**以进行照明计算。 URP Baked Lit是唯一使用烘焙式光照的着色模型的着色器。

Shaders with no lighting

URP附带了一些不使用光照计算的着色器。这意味着它们不使用实时的光源,也不使用预烘焙的光照信息来进行照明计算。方向灯,也没有烘烤的照明。因为没有光照计算,所以这些着色器的编译速度比带光照的着色器要快。如果事先知道GameObject不需要照明,请选择“Unlit”着色器以节省计算时间并在最终产品中建立时间。

以下URP着色器没有照明:

参考网页

【基于物理的渲染(PBR)白皮书】(五)几何函数相关总结