Shading models in Universal Render Pipeline
Shading models定义了材质的颜色如何根据表面方向,观察者方向和照明等因素而变化。说白了就是不同的Shader有着不同的表现,其内部实现的原理也不尽相同(运用到的数学公式不同),要根据自身的实际情况去选择对应的Shader。
URP提供的Shading models为下面四种(名称的话直接音译过来就可以,主要了解这四种模式的表现和实现):
- Physically Based Shading
- Simple Shading
- Baked Lit Shading
- No lighting
1-Physically Based Shading
注意这里说的是PBS和我们平常说的PBR从概念来说还不是同一个东西。
PBR:基于物理渲染的一套标准
PBS:用于实现PBR的媒介(Physically Based Shading)着色模型
这里引用一段PBR白皮书里的一段简介
以下URP中使用PBR的着色模型(在内置渲染管线中,大家可以把所谓的着色模型当成一个组件Component)
- Lit
- Particles Lit
注意:不支持低端移动设配。如若想在这些低端设备中使用,请使用Simple Shading
2-Simple shading
Simple shading是一种低端设备运用PBR的一种折中选项,其材质的表现形式并不是真正的真实感(和现实世界的表现一致)而且(性能)比较耗。是基于Blinn-Phong模型上的一种模型。
以下URP中使用PBR的着色模型
- Simple Lit
- Particles Simple Lit
在Simple shading中,材质的漫反射(diffuse)和镜面反射(specular)没有什么什么关联。这完全取决于我们设置的材质属性,因此总反射光可能会超过总入射光。且镜面反射仅随相机方向而变化。
Light attenuation is only affected by the light intensity.灯光的衰减仅受灯光的强度影响。
在现实生活中的物理常识:
1.反射的光总量不大于入射的光总量,且漫反射和镜面反射是互斥关系;
2.粗糙的表面反射的光线分散且暗,光滑的表面反射集中且亮
3-Baked Lit shading
此模型不包含实时光照。材质可以接受来自光照贴图(lightmaps)或光照探头(Light Probes)接收烘焙光照(baked lighting)。以较小的性能成本为场景增加了一些深度表现。可以在功能较弱的平台上运行。
4-Shaders with no lighting
此模型不存在方向光和烘焙光等其它光源。因为没有光照计算,所以效率上要比支持光照的模型更快。
The following URP Shaders have no lighting:
- Unlit
- Particles Unlit
总结
以上是URP所支持的所有着色模型
Physically Based Shading:随着手机硬件的提高和玩家审美的提高,PBR是未来发展的趋势。且只针对高端移动设配
Simple shading:在基于物理渲染(PBR)之前,主要受硬件计算水平的影响,人们不能像PBR那样使用真实世界的物理法则进行光照渲染,根据自己的经验使用一些开销不那么大的近似计算进行渲染的一种模式。
Baked Lit shading:静态光照,将场景中的光照预先进行计算,游戏运行中避免光照计算,可以提升性能,但是效果比较假
Shaders with no lighting:适用于没有光照的游戏项目。
接下来会深入学习每一个着色模型的实现原理和实际表现。