PBR 的概念
1 光照/反射模型(Lighting/Reflection Models)
光照模型是用于确定模型表面光照的方法/算法
- 漫反射(Diffuse)
- 高光反射(Specular)
2 双向反射分布函数(BRDF)
BRDF是对反射模型的数学建模。
BRDF 是描述当它击中一个表面如何反射的光的数学函数。“双向”位指的是函数依赖于两个方向:
- 光射到物体表面的方向(入射方向,ω i)
- 观察者看到反射光的方向(反射方向,ω r)
鉴于我们对材料的感知在很大程度上取决于其反射特性,可以理解的是,已经开发了几种不同的 BRDF,在模拟不同类型的表面时具有不同的有效性和效率:
-
Lambert: 模型完美地漫射光滑表面,其中表观表面亮度仅受入射光角度的影响。观察者的视角没有影响。
-
Phong和Blinn-Phong: 通过考虑入射光的方向和观察者的方向,对光滑高亮表面上的镜面反射进行建模。
3 基于物理的渲染(PBR)
基于物理的渲染,是一组渲染技术, 包括基于物理的相机,基于物理的光照。
基于物理的渲染是一种渲染方法,与传统的实时模型相比,它可以更准确地表示材料以及它们如何与光相互作用。PBR 方法的核心是材质和光照的分离,可以更轻松地创建在所有照明条件下看起来都准确的逼真资源。
对于被视为基于物理的光照模型,它必须满足以下 3 个条件:
- 基于微平面表面模型
- 能量守恒
- 使用基于物理的 BRDF
4 BRDF 历史
- Lambert (1760年)
- Smith (1967年)
- Phong (1973年)
- Cook-Torrance (1982年)
- Oren Nayarh (1994年)
- Schlick (1994年)
- GGX (2007年)
- 迪斯尼原则的BRDF (Disney principled BRDF, 2012年)
- 直观的参数,而不是物理化的参数
- 可供调整的参数尽量少
- 参数取值范围最好能归一化
- 如果有意义,应该允许参数值超过1
- 所有参数的结合,应该保证效果是稳定的
- BxDF(2019年)
- PBR Diffuse for GGX + Smith (2017)
- MultiScattering Diffuse (2018)
- Layers Material(分层材质)
- Mixed Material(混合材质)
- Mixed BxDF(混合BxDF)
- Advanced Rendering(进阶渲染)
5 PBR在游戏引擎时间点
-
Disney,《Physically Based Shading at Disney》,Brent Burley. 2012.
-
Unreal Engine 4: 《Real Shading in Unreal Engine 4》, SIGGRAPH 2013
-
Unity 5: 《Physically Based Shading in Unity》, GDC 2014
-
Frostbite (寒霜): 《Moving Frostbite to PBR》, SIGGRAPH 2014
-
Cry Engine 3.6: 《Physically Based Shading in Cry Engine》, 2015
References
[1] PBR Theory
[2] 由浅入深学习PBR的原理和实现
[3] Filament
[4] Physically based shading references, at the end of 2019