通用渲染管线中的着色模型
着色模型定义了材质的颜色如何根据表面方向、查看器方向和光照等因素而变化。着色模型的选择取决于应用程序的艺术取向和性能预算。通用渲染管线 (URP) 为着色器提供以下着色模型:
- 基于物理着色 (Physically Based Shading)
- 简单着色 (Simple Shading)
- 烘焙光照着色 (Baked Lit Shading)
- 无光照 (No lighting)
基于物理着色
基于物理着色 (PBS) 根据物理原理计算从表面反射的光量,从而模拟对象在现实生活中的外观。此模型可用于创建照片般逼真的对象和表面。
这种 PBS 模型遵循两个原理:
能量守恒 - 表面反射的光量始终低于总的入射光量。唯一的例外是发光的对象。例如,霓虹灯。 微观几何 - 表面具有微观级的几何形状。有些对象具有平滑的微观几何形状,使它们具有镜面般的外观。其他对象具有粗糙的微观几何形状,使它们看起来更暗淡。在 URP 中,可以模拟被渲染对象表面的平滑度。
当光线照射到被渲染对象的表面时,部分光线会被反射,而部分光线会被折射。反射光称为_镜面反射_。这取决于摄像机方向和光线照射到表面的点(也称为入射角)。在此着色模型中,使用 GGX 函数来模拟镜面高光的形状。
对于金属对象,表面会吸收并改变光线。对于非金属对象,也称为介电 (dielectric)对象,表面会反射部分光线。
光衰减仅受光强度的影响。这意味着无需增加光照范围即可控制衰减。
以下 URP 着色器使用基于物理着色:
注意:此着色模型不适用于低端移动平台硬件。如果目标硬件是此类硬件,请使用具有简单着色模型的着色器。
如需了解有关基于物理渲染的更多信息,请参阅 Marmoset 上由 Joe Wilson 提供的此教程。
简单着色
此着色模型适用于风格化的视觉效果或适用于性能较弱的平台上的游戏。使用这种着色模型时,材质不会呈现真实的逼真感。这些着色器不遵循能量守恒定律。此着色模型基于 Blinn-Phong 模型。
在此简单着色模型中,材质会反射漫反射光和镜面反射光,且两者之间没有相关性。从材质反射的漫反射光量和镜面反射光量取决于为材质选择的属性,因此总反射光量可能超过总入射光量。镜面反射仅随摄像机方向而变化。
光衰减仅受光强度的影响。
以下 URP 着色器使用简单着色:
烘焙光照着色
烘焙光照着色模型没有实时光照。材质可以从光照贴图或光照探针接收烘焙光照。这会以较低的性能成本为场景增加一些深度。采用此着色模型的游戏可以在性能较弱的平台上运行。
URP 烘焙光照着色器是唯一使用烘焙光照着色模型的着色器。
无光照的着色器
URP 带有一些无光照的着色器。这意味着这些着色器没有方向光,也没有烘焙光照。由于无需进行光照计算,这些着色器的编译速度比具有光照的着色器更快。如果事先知道游戏对象或视觉效果不需要光照,请选择一个无光照着色器以节省最终产品的计算量和构建时间。
以下 URP 着色器没有光照: