简介
我们终于来到了跟渲染有一点点关系的部分了,这部分我们看完之后就可以去改进我们的多重采样部分的代码了。我们应该抽象的看待我们之前获取到的那些数学公式:
这里实际上相当于 。然后S就相当于是概率,我们应该想起来我们先前推导来推导去的那些公式:pdf、cpdf、r、e、f。
动机与初心
还记得不记得我们在渲染的时候碰到的是啥问题?我们碰到的问题是不知道如何去给一个光线权重的问题,我们如果对某一个像素进行渲染的时候,只发射一根光线去计算这个像素点的颜色的话,会有很大的噪声。
为了解决这个问题,我们引入了多重采样,但是在多重采样后,我们又面临了曝光度过大的问题,所以我们需要给每一根光线一个权重,来缩放它们最终生成的颜色在最终画面里的比重。这样一来,我们在光线追踪学习的时候直接采用的是平均值的方式,我们先把所有光线生成的颜色加起来,然后除以光线的总数量。这种方法简单粗暴,但是不是最好的办法,我们其实更期望能根据光线自身的特性来给予光线一个权重,于是乎我们开始了蒙特卡洛方法的研究之旅。
有些人学着学着就把初心给丢了,我们一次又一次的帮助同学们捡起这个玩意。
回归初心
在故事的开始,我们是要计算面积的:
年轻的我们写下了这样的代码来解决这个问题:
#include #include #include f