Weekly22/11/6

这周主要完成了多重重要性采样积分器
再做了点trick让渲染的偏差小了点

下一步的目标就是把玻璃材质加上,然后做好vndf采样,模型加载,平行光源,点光源(或许无)...

Well,其实我已经完成了读pbrt前的目标了,所以之后我的进度会变得非常非常缓慢,我的周报也会换成月报...

好吧,我之前是发了太多无用的周记了,所以我在下个星期会把那些全部删掉...但是取而代之,我会把在这个渲染器上学到的知识,踩过的坑做一个大汇总

毕竟实践出真知

渲染图

1.对BRDF采样

这幅图中,光线的下一次反射方向是对brdf进行采样决定的。
对于右边的那个Box,他的表面光滑,所以其采样方向为镜面反射方向,左边那个box类似磨砂的金属,所以采样的Lobe接近镜面,只能依稀辨认出右边那个box的痕迹(淡淡的绿色)
但是这种采样的方法偏差太大了,特别是后面的墙,明显的噪点

2.直接对光源采样

对于这种采样策略,光线从摄像机进入场景后只会反弹一次,方向朝向场景中的光源,我选择的方法是只对单个光源进行采样(但是多次采样,所以也是正确的)。在这时,所有背对着光源的物体因为光源被阻挡而全黑。
因为光线永远只会向光源方向弹射,所以右面的盒子会丢失镜面的特性。不过有个小trick,就是如果物体是镜面表面,光线就会以镜面反射为方向额外进行一次弹射,然后对击中的点进行光源采样,再返回....我这里没做,但是很简单滴
这种采样的方法收敛的特别快,画面差异也特别小,但是结果不真实,背光处大片死黑,毫无观感。

3.多重重要性采样

这种方法结合了之前两种策略的好处,画面干净噪点少,镜面表面也能很好的看到反射(ps: 左边那个盒子是各向异性的,可以稍微看到右边盒子的轮廓),更重要的是,他收敛的特别快,20samples基本上就能看了(但每次反弹都要对两个方向采样....实际上两倍于brdf的采样次数
这里还有个trick,对于镜面的物体,可以不对光源进行采样,只对BRDF采样(因为此时镜面方向贡献大,光源方向基本没贡献),实现起来也不难,我后面加上会咧


对了,是不是觉得这个康奈尔盒子很奇怪?因为他没顶盖哈哈哈

之后的目标

我打算去做一个微型的LOG库,作为一个基础的小工具
双向积分器?或许会去写一下
在此之前,我会把重要性采样的东西写出来,总结一篇文章
然后随缘对渲染器添加新Feature了
在之后..估计去和实时渲染玩耍,随缘看看论文,也可能花时间在考研上,或者是做点自己喜欢的事,看部电影,学学画画,或者是去芦潮港钓海鲈鱼?!那么多事可以去做,那么多事要做

写到此处,总感觉有几只无形的手在PUSH我,而我迷茫无比,有劲无处使,唉,时间不够用哇

最后列举一下要看的东西

  • 对VNDF采样,下星期的任务咧哈哈
  • Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs,据说是神文,60多页,下星期开始看 , PDF版Slides版

再记

上周周记用福瑞图做题图就没多少人点了咧,看来点击量和题图有关(蚌,但是福瑞还是得有>_<  逃)

END