环境光照
用一张图来记录:往场景中任意一点看的时候,光照的数据。

假设已经得到了环境光,如何获取一个点的shading。自然是需要解渲染方程的。除去V项目(也就是阴影)。

通用的解法:
蒙特卡洛积分,会非常的慢。

观察场景:
1.如果BRDF是glossy的,那么覆盖球面会很小
2.如果BRDF是 diffuse,就很平滑

引入经典的近似方案:
满足2个可以近似的条件

那么,我们可以拆分BRDF,拆分出来光照的部分。

那么,我们就可以滤波环境光。预处理环境光。这里的滤波是在球面或者是cube方向。

观察二:
采样一个点周围的所有点的BRDF,获取一个均值。

对于BRDF的部分的积分:也可以进行预计算

对BRDF的描述和近似:
详情查看材质文章
https://editor.youkuaiyun.com/md/?articleId=119855170


如何把BRDF中预计算的维度降下来:
对菲涅尔项的近似,消除对基础反射率的依赖。

可以使用打表格的方式去计算出来一张纹理,后续计算的时候,可以直接查纹理的数据。

其实就是以下公式:

截图和公式来源闫令琪老师games202课程
感谢闫令琪老师为我们带来这么精彩的图形学课程
https://www.bilibili.com/video/BV1YK4y1T7yY?p=4&spm_id_from=pageDriver

本文探讨了如何通过预计算BRDF并分解光照部分,利用经典近似方法加速场景中点的shading计算。通过蒙特卡洛积分的替代,介绍了环境光滤波和表格式存储,重点讲解了闫令琪老师的课程内容,帮助读者理解如何降低菲涅尔项复杂度并优化图形渲染性能。
889

被折叠的 条评论
为什么被折叠?



