环境光照
用一张图来记录:往场景中任意一点看的时候,光照的数据。
假设已经得到了环境光,如何获取一个点的shading。自然是需要解渲染方程的。除去V项目(也就是阴影)。
通用的解法:
蒙特卡洛积分,会非常的慢。
观察场景:
1.如果BRDF是glossy的,那么覆盖球面会很小
2.如果BRDF是 diffuse,就很平滑
引入经典的近似方案:
满足2个可以近似的条件
那么,我们可以拆分BRDF,拆分出来光照的部分。
那么,我们就可以滤波环境光。预处理环境光。这里的滤波是在球面或者是cube方向。
观察二:
采样一个点周围的所有点的BRDF,获取一个均值。
对于BRDF的部分的积分:也可以进行预计算
对BRDF的描述和近似:
详情查看材质文章
https://editor.csdn.net/md/?articleId=119855170
如何把BRDF中预计算的维度降下来:
对菲涅尔项的近似,消除对基础反射率的依赖。
可以使用打表格的方式去计算出来一张纹理,后续计算的时候,可以直接查纹理的数据。
其实就是以下公式:
截图和公式来源闫令琪老师games202课程
感谢闫令琪老师为我们带来这么精彩的图形学课程
https://www.bilibili.com/video/BV1YK4y1T7yY?p=4&spm_id_from=pageDriver