对于MC ray tracing 的自适应采样时现在光线跟踪算法研究的一个主要的方向,在合成一幅高质量的图像的时候往往需要大量的采样点才能够合成真实感很强的图像。这样就给计算机的计算带来了很大的压力,往往合成一幅图像都需要好几个小时或者更长。而自适应采样可以使用较少的点合成较高真实感的图像,所以自适应采样倍受关注。
自适应采样的核心思想就是在合成一幅图像的时候,不同区域的像素值的变化不同,细节的丰富程度也不同。对于细节较少的区域,用较少的采样点就可以完全的表示出该区域的特征,因此在细节少的地方就采较少的点就可以了。但是对于细节比较丰富的区域就必须有大量的采样点才能够详细的表述出该区域的细节信息,进而需要大量的采样点。
自适应采样通常都是一个迭代的过程,通常分为下面三个步骤:
1.分配初始采样点,通常是均匀分布。
2.对生成的图像去噪。
3.判断图像细节的区域,决定下次迭代采样点分配。
算法一般迭代的执行上面三步,直到采样点分配完毕。自适应算法的关键地方就在第二步和第三步。并且有很多的方法来处理。下面就简单总结下一些比较常见的方法。
最先的自适应采样就是检测光线与几何体表面的交点,看一束光线和几个物体相交(可以根据物体的ID来判断),光线与多个物体相交的地方就给多的采样点,反之则反。同时可以加上颜色这一属性来判断。
下一种是用一组滤波器来对初始图像进行滤波(比如一组高斯滤波),用MSE来决定选取该 组滤波器的哪个尺度的滤波器来对图像进行滤波,判断的依据是让生成的MSE尽量的小。该方法的主要优势就在于可以在不同的地方使用不同尺度的滤波器,这样可以达到对图像的一个保留细节的滤波。然后通过选取相对MSE较大的地方重新分配新的采样点,来进一步的减小MSE。此外,该种分组滤波器,去对图像进行处理的判断标准也可以使计算SURE值,使用SUER值的好处就是,滤波器组可以使用非对称的滤波器比如:NL-means和交叉双边滤波等等。实验证明这种方法是很好的。
接着就是使用NL-means的自适应采样,该种方法的独特之处就在于合成图像的时候将图像分层了两个采样点相同的缓冲区域A和B,然后滤波的时候用A中计算的权值去处理B缓冲区的图像,B中计算的权值去处理A中的图像。这样可以消除滤波系数和噪声之间的相关性。最后利用两幅图像之间的差值来代表错误率,也就是用错误率来代表很复杂的区域。计算一个错误率的权值地图,然后根据这个权值地图来重新分配采样点。这也是一种比较好的自适应采样方法。
以上就是简单的介绍的几种比较新的自适应采样的方法。