
一个函数是像素欧式距离决定滤波器模板的系数,另一个是由像素的灰度差值决定滤波器模板的系数。
其综合了高斯滤波器(Gaussian Filter)和α-截尾均值滤波器(Alpha-Trimmed mean Filter)的特点。高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;Alpha截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%的最小值和最大值后再计算均值。
双边滤波器使用二维高斯函数生成距离模板,使用一维高斯函数生成值域模板。
双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合,其公式如下:
其中(k,l)为模板窗口的中心坐标;(i,j)为模板窗口的其他系数的坐标;σd为高斯函数的标准差。 使用该公式生成的滤波器模板和高斯滤波器使用的模板是没有区别的。
值域模板系数的生成公式如下:
其中,函数f(x,y)表示要处理的图像,f(x,y)表示图像在点(x,y)处的像素值;(k,l)为模板窗口的中心坐标;(i,j)为模板窗口的其他系数的坐标;σr为高斯函数的标准差。
将上述两个模板相乘就得到了双边滤波器的模板,其公式如下:
RTX是一种硬件架构,能够更方便的追踪光线。 每秒能处理10G的光线(指一个像素的样本,sample per pixel),但并不是全程算力都在处理光线,还会做降噪等工作。 所以在RTRT中,我们只能做到1SPP的光追精度。
RTRT在做什么:阴影、反射和镜面反射、环境光遮蔽、全局光照(光线追踪适合做的事)
RTX处理的反射情况非常多,因为glossy的表面更容易做RTRT,diffuse倒更复杂
路径追踪是基于蒙特卡洛积分的方法,本身会产生噪声,采样的样本越多噪声越小,RTRT使用了1SPP的方法,会产生非常大的噪声。所以 RTRT的核心技术是降噪 ,如何从噪声图生成清晰的图。
降噪目的是:在1SPP的前提下,进行降噪,达到画面质量要求(没有过模糊,没有artifacts,保留了所有细节),并高效处理。
使用切边滤波系列(SF,AAF,FSF,MAAF)、离线滤波方法(IPP,BM3D,APR)、深度学习,等降噪方法对RTRT降噪不可能。
G-buffer
G-buffer:几何缓冲区:在渲染的过程中获得的免费的 屏幕空间 信息,比如逐像素深度、法线、世界坐标、直接光照结果、反照率kd等等。是屏幕空间的信息。也可以都各自保存进gbuffer中,方便后续使用。
是工业界常用的解决方法。关键思路: 假设前一帧被降噪完毕,并假设帧与帧间的连续性 。使用 motion vector 寻找前一帧的位置,将前一帧的结果复用。相当于增加了SPP。
motion vector:描述了屏幕空间中的物体在帧与帧之间运动的相对位置(上一帧像素对应的片元,与下一帧该片元对应的像素位置的相对移动)
Back Projection
要找到当前帧某一像素的内容,对应上一帧哪个像素,Back Projection就是求解motion vector的方法。
时域滤波的问题:
解决方法:主要是clamping和detection。
上文介绍了如何实现时域滤波,在时域滤波前我们会对1SPP的图像进行一次空间域的滤波,这次空间与的滤波可以有效地把原图降噪。
空间域滤波最常用的方法是使用 基于距离的高斯滤波核 进行滤波。这种滤波考虑的部分大概是 范围内对中心像素有贡献。
我们在对原图进行滤波时,要首先明确: 不是所有的高频信息就全是噪声 ,当然 也不是低频信息中就没有噪声 。于是我们需要保留有用的高频信息。
双边滤波基于一个观察: 当此处颜色变化非常剧烈,我们认为是边界 。
所以双边滤波的思路是: 找到一个保留边界的方法 ——如果像素 与像素 的颜色差异非常大,就让像素 贡献少一些;仅仅向滤波核添加一些控制的方法就可得到。
我们可以看到:高斯滤波提出了一个滤波标准,即两像素之间的距离;双边滤波提出了两个滤波标准,即像素位置距离和颜色距离;那么我们也可以使用更多的特征来帮助滤波。由此而提出的联合双边滤波是非常适用于RTRT下的滤波。
使用G-buffer,作为新的标准帮助滤波 。因为G-buffer是 完全没有噪声 的,G-buffer在光栅化过程中生成,和光线多次d射无关。联合双边滤波还可以考虑其他的标准,每一个标准的σ和μ都可以单独考虑,滤波的阈值(多大距离算大)也可以主观设置
例如下图中:AB之间深度差距过大,BC间法线差距过大,DE间颜色差距过大
还有一个问题:我们滤波过程中所用的滤波核是NxN大小的,对于每个着色点的滤波都要遍历它NxN范围内的邻居,开销很大。对于小滤波核来说可以接受,但是对于大滤波核,开销巨大。
对于大滤波核有两种 加速滤波的办法 :
由于outlier的亮度会非常大,导致滤波后它的亮度会贡献到周围点,形成块状亮斑,所以要在滤波前将outlier检测并剔除。但是由于outlier的结果也是合理的, 剔除outlier导致能量不守恒 ,但是RTRT领域为了效率只能这样做。
在讲述高斯滤波和双边滤波时提到,我们需要判断高频信息属于噪声还是图像信息,保留有用的高频信息。
SVGF与在时空上降噪的方法差不多,SVGF增加了偏差分析和其他的技巧。
主要思想: SVGF是一种联合双边滤波
它通过三个因素指导滤波:
通过循环神经网络在时域上,基于Gbuffer和1SPP的渲染图,从而计算降噪的渲染图。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)