PBR:理论
发表于2019-12-23
概述
网上有很多PBR理论相关的文章,如《基于物理的渲染(PBR)白皮书》系列,这里只是精简这部分概念。
渲染方程(推导)
这个公式基于辐射的过程中,能量守恒的原则推导而来。它的物理意义是:我们见到的x位置的颜色,是它自发光+对所有接受的光源的辐射的总和。
简化形式:
其中:Le是自发光,Li是入射光亮度,fr是入射方向到出射方向的比例,(wi*n)是入射角度带来的衰减,dwi是入射方向半球积分。
BxDF
主要用来模拟Fr的特性,基于不同材质,所使用的方法也不同。
BRDF(双向反射分布函数):仅处理受光面,且不考虑次表面散射。适合不透明材质。
BTDF(双向透射分布函数):仅处理背光面,且不考虑次表面散射。
BSDF(双向散射【反射+透射】分布函数):处理受光面和背光面,且不考虑次表面散射。适合透明度比较高的材质。
BSSRDF(双向散射表面反射率分布函数):处理受光面和背光明,考虑次表面散射,适合半透明材质,云,玉石,牛奶等。
BRDF
基于BRDF模式,可以对渲染方程进一步细化:镜面反射+漫反射
翻译
基于对半球积分的简化,把光源简化成直接光+环境光,这样就不需要求积分了。
输出颜色 = 直接光输出颜色+环境光输出颜色
最后
PBR光照的本质是基于物理,整个光照都必须遵守能量守恒这个原则。BRDF是基于非透明材质,这个特例简化出来的渲染模型,所以他不适用于透明材质。此外,BRDF只是一个推导结果,最终不同的引擎会基于这个规范来实现自己的方案。在实现的过程中,还会对积分这种操作进行简化,一般是采用类似GI的方式模拟环境光对材质的影响。在U3D里面是由IBL模块实现,正是因为有了这些细节,整个渲染结果才显得的更高大上。