间接照明总结
我们已经学习了间接照明的三种引擎分别为:BF算法、发光图、灯光缓存,下面我们对这三种引擎进行总结,并讨论
他们之间的搭配及用法。
1、特点BF算法:每像素采样 。发光图:自适应细分。灯光缓存:块结构、递进式算法。
2、首次及二次引擎的搭配方式由于BF算法为每像素采样,如果作为首次引擎的话太浪费资源,不适合作为首次引擎。灯光缓存算法虽然非常高级
但是递进式块结构算法并不能在局部进行精细采样,所以发光图最适合作为首次引擎。由于光子图的算法存在很多的缺点
那么最优的组合只有:发光图+BF算法,或者发光图+灯光缓存。
由上图,发光图引擎进行自适应细分,然后BF对发光图引擎所发射的采样射线进行反弹,BF算法在作二次引擎的时候它只是辅助发光图引擎,它的细分参数没有意义
只有反弹参数有意义,反弹参数值越大计算的照明效果越精确画面越亮。通过前面的学习发光图可以生成光子图,那么二次引擎BF生成的光子可以保存吗?
答案是可以的,BF生成的光子保存在光子图里,下面举例说明。在单帧的模式下渲染图像,并保存它的光子图。
模式改为从文件并渲染,可以对比发现两张图的效果一样,可知二次为BF产生的光子保存在光子图中。
3、发光图+灯光缓存BF为发光图做辅助运算,灯光缓存同样也是为发光图做辅助运算,只不过灯光缓存更高级,它作为二次引擎会先运算灯光缓存,再运算发光图先计算灯光缓存再计算发光图流程:灯光缓存先把场景拆分为块结构,发射采样射线对整个场景进行反弹运算。
然后发光图进行自适应细分,因灯光缓存已经把二次反弹的照明信息计算完毕,所以首次引擎发光图直接使用灯光缓存提供的照明信息
最终把间接照明渲染出来,下面图解说明。
灯光缓存参数如右图,使用光子图工具查看灯光缓存产生的光子。由上图,可以发现灯光缓存的光子是对整个场景进行运算的
结合它的递进式渲染原理,完美辅助了发光图引擎。所以我们最常用的两种搭配方式为:发光图+灯光缓存或者发光图+BF算法。
评论(0)