LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
文献翻译:实时渲染(第4版)26.5降噪

 

图26.6. 顶端:使用每像素65536个采样路径跟踪方法的渲染结果,下面从左到右:分别为1,16,256,4096和65536个每像素采样渲染的同一场景的结果,要注意到即使是4096个采样依然会出现噪点。(模型由NVIDIA Corporation的AlexiaRupod提供。)

图26.18. 左侧:使用光线追踪生成的环境光遮蔽效果,每像素用一根光线采样。去噪算法使用此图像和可选的辅助图像数据生成右侧的去噪图像。辅助图像数据的示例包括每像素的深度分量、法线、运动向量以及到着色点处遮罩的最小距离。请注意,去噪算法可能会将其部分输出反馈到下一帧的去噪过程中。(噪声图像和去噪图像都由NVIDIA Corporation提供)

       如图26.6所示,使用蒙特卡罗路径跟踪方法进行渲染的结果总是伴随着令人不适的噪声,特别是在低采样下噪声尤为明显。去噪算法的目的是为了在噪声图像的基础上通过使用可选择的辅助图像,并尽可能的生成与真值(ground truth)情况相同的新图像。在本节中,我们非正式的使用"相似(resemble)”一词,因为轻量模糊图像总是好于带有噪声的图像。去噪对于实时渲染的图像特别有必要,因为为了保证渲染的实时性,不得采用低采样数,从而导致噪声的产生。例如图26.22的PICA,该PICA图像使用了大约使用了每像素2.25根光线采样【76】。去噪的概念由图26.18所示,向去噪器添加了一个反馈循环。因此可以将时间抗锯齿(第5.4.2节)视为基本的去噪算法。大多数(如果不是全部的话)去噪技术可以用一种简单的方式表示为当前像素周围颜色的加权平均值,我们将其枚举为标量值p。加权平均值为【12】:

这里的d_p是去噪像素的颜色值,c_q是当前像素(包括p)周围的噪声颜色值,w(p,q)为一个加权函数,附近有n个像素,称为N,在这个公式中使用p附近的。这个处理快通常是方形的。还可以扩展权重函数,使用前一帧的信息。例如w(p, p_-1, q, q_-1),这里的下标-1就意味着表明上一帧的信息。权重函数也可以根据法线n_q来确定。如果需要,还可以之前的颜色值c_{p-1}来确定。例如图24.2,24.3,26.19,26.20和26.21。

        对于使用光线追踪的真实感实时图像渲染,去噪领域已经是一个非常重要的课题。在本节中,我们将简要概述一些重要的工作,并介绍一些有用的关键概念。我们参考了Zwicker等人的研究【97】作为了解更多知识的绝佳起点。接下来,我们将重点介绍在低采样数下工作良好的算法和技巧,即每像素只有一个或几个采样。

        渲染一组G-buffer(第20章)是常见的方法,这样一组无噪声的缓冲区数据可以用作辅助降噪的图像数据【13,69,76】。然后可以使用光线跟踪生成有噪阴影、光泽反射和间接照明。另外一种方法是将直接照明和间接照明分开,并分别对他们进行去噪,因为它们含有不同的特性,例如,间接照明通常较为平滑。为了增加去噪过程中使用的样本数,通常还包括某种时间累积或时间抗锯齿(第5.4.2节)。另一个很好的近似方法是过滤有时被称为无纹理照明或照明和纹理分离的模型【96】。要解释其工作原理,重新复习渲染方程式(第11.2节):

为了简单起见,这里省略了自发光项L_e。我们只处理漫反射项,虽然类似的程序也可以应用于其他术语。接下来是反射项,计算漫反射项R,其本质上只是漫反射着色项乘以纹理(如果表面具有纹理):

图26.19. 左:过滤后的阴影项,右上:使用区域光源的单个采样放大阴影项。左下:对右上角图像进行去噪后。阴影在预期的位置更平滑,接触阴影更硬。(图像由SEED-Electronic Arts提供).

然后,无纹理的照明U为:

即为纹理项已经被去掉,U包含了大量主要的照明信息。因此,渲染器可以使用渲染方程计算L_o,并执行纹理查找加上漫反射着色以获得R,这将为我们提供无纹理照明。这样我们就获取到无纹理的照明。然后使用D作为去噪项最后的结果约为DR。这要避免了在去噪算法中处理纹理,是一种很好的方法,因为纹理通常包含高频内容,比如边缘。无纹理照明技巧也类似于Heitz等人提出的方法【35】。他们将最终图像分割为带噪阴影项和分析区域光着色,然后对阴影项执行去噪,最后重新组合图像。这种类型的分割通常被称为比率估计(ratio estimator)。

        软阴影去噪可以使用时空方差引导滤波(SVGF)【69】,例如SEED【76】见图26.19。SVGF最初是为使用路径跟踪对每像素一个样本的图像进行去噪而开发的,即使用G-Buffer为主要的可见参考,并在第一次和第二次命中物体时发射一条带有阴影光线的次级光线。总体思路是在时间上进行累积(第5.4.2节)来增加有效样本计数。以及空间多程模糊(a spatial multi-pass blur)【16,29】,其中模糊核大小由噪声数据方差的估计值确定。

        通过以下的方法,方差可以随着样本数x_i的增加而递增计算。首先平方差之的计算方式为:

x_n是前n个数字的平均值。方差为:

现在,假设我们已经使用了x_1,...,x_n计算了s_n并且我们还有多一次的采样x_{n+1},我们想要将其包含在方差计算中。然后结果为:

之后将s_{n_1}代入方程26.8可以被用来计算σ^{2}_{n+1}。在SVGF中,这样的方法用于估计随时间变化的方差,但如果检测到混淆,则会切换到使用空间估计,这使得时间方差不可靠。对于软阴影,Llamas和Liu【51,52】使用可分离的横向滤波器(第12.1.1节),其中滤波器权重和半径都是可变的。

        Stachowiak提出了一整套消除反射噪声的方法【76】。一些示例如图26.20所示。首先渲染G-Buffer,然后从那里发射光线。为了减少跟踪的光线数,每2×2像素仅在反射命中处拍摄一条反射光线和一条阴影光线。然而,图像的重建仍然是在全分辨率下进行的。反射光线是随机的和依重要性采样的。“随机”意味着,随着添加更多随机生成的光线,解会收敛到正确的结果。“重要性采样”是指光线被发送到预期对最终结果更有用的方向,比如朝向BRDF的峰值。然后使用与屏幕空间反射中使用的方法相似的方法对图像进行过滤【75】(第11.6.5节),并同时将其上采样到全图像分辨率。该滤波器也是一种比率估计器【35】。这项技术与时间积累、双边清除步骤(a bilateral cleanup pass)以及最后的时域抗锯齿(Temporal Anti-Aliasing,TAA)相结合。Llamas和Liu【51,52】提出了一种基于各向异性滤波器核的不同反射解决方案。Metha等人【54、55、56】采用了一种基于傅里叶分析的光传输理论方法【17】,以开发过滤方法和自适应采样技术。他们开发的轴对齐过滤器比更精确剪切过滤器(sheared filters)评估速度更快。这样做可以提高性能。有关更多信息,请参阅Meta的博士论文【57】。

        对于环境遮挡(AO),Llamas和Liu【51,52】使用了一种轴对齐内核的技术【54】,该内核使用可分离的交叉双边滤波器(第12.1.1节)实现,以提高效率。内核大小由跟踪AO光线时发现的到对象的最小距离决定。当遮挡器靠近时,滤波器尺寸较小,而当遮挡器远离时,滤波器尺寸较大。这种关系为较近的遮光罩提供了更明显的阴影,并且当遮光罩较远时,效果更平滑、更模糊。参见图像26.21.

        还有几种去除全局照明噪声的方法【13、51、55、69、70、76】。也可以对不同类型的效果使用专门的过滤器,这是Frostbite和SEED研究出的一些可采取的方法【9,36,76】。参见图26.22.

图26.20. 顶部:展示了只对反射项去噪后的图像切片。底部左边:使用2x2像素每光线采样未去噪的图像。底部中间:方差项的可视化表达。底部右边:全分辨率下的去噪反射图像。(图像由SEED-Electronic Arts提供。)

        寒霜引擎(Frostbite)的实时光照映射系统依赖于基于方差的去噪算法。光照映射纹理存储通常累积的样本贡献并跟踪其方差。当出现新的路径跟踪结果时,光照贴图在呈现给用户之前会根据每个纹理方差进行局部模糊。基于方差的模糊类似于SVGF【69】,但它不是分层的,以避免属于不同网格的灯光贴图元素相互泄漏。模糊时,仅来自同一灯光贴图元素的采样使用逐纹理元素索引一起模糊。为了不偏移收敛,原始灯光贴图保持不变。

        另一种选择是在纹理空间中执行去噪【61】。它要求所有曲面位置都具有唯一的uv空间值。然后在表面上命中点的纹理上进行着色。纹理空间中的去噪可以非常简单,例如,在13×13区域中,从具有相似法线的纹理中平均着色。Munkberg等人在cosθ>0.9时包括纹理元素(texel),其中θ是被去噪纹理元素处的法线与考虑包含的纹理元素处的另一法线之间的角度。其他一些优点是,时间平均在纹理空间中很简单,可以通过在更粗糙的级别上计算着色来降低着色成本,并且着色可以在多个帧上摊销。

图26.21. 顶部:图像中的环境遮蔽使用每像素一条光线进行光线跟踪,然后进行去噪。放大后的图像从左向右显示:参考的真实值(ground truth),屏幕空间环境光遮蔽,光线追踪生成环境光遮蔽每像素一根光线每帧和一根光线每像素的降噪图像。去噪后的图像不会捕获所有较小的接触阴影,但仍然比屏幕空间环境遮挡更加匹配参考值。(图像由NVIDIA Corporation提供。)

        到现在为止,我们任然假设物体是静止的相机是单个的点。但是,如果包含运动,并且使用景深渲染图像,则深度和法线也可能有噪声。对于此类情况,Moon等人【60】开发了一种各向异性滤波器,用于计算每个像素的世界位置样本的协方差矩阵。这用于估计每个像素处的最佳滤波参数。

图26.22. PICA的最终画面,画面由光栅化和光线追踪混合渲染,最后由多个降噪过滤器降噪(图像由SEED-Electronic Arts提供) 

        借助深度学习算法【24,25】,可以利用游戏引擎或其他渲染引擎生成的大量数据,并使用这些数据生成神经网络,以生成去噪图像。其思想是首先建立一个卷积神经网络,然后使用含噪和无噪图像对网络进行训练。如果做得好,网络将学习一组较大的权重,它可以在稍后的推理步骤中使用这些权重来去除噪声图像,而无需了解任何其他无噪声图像。Chaitanya等人【13】使用卷积神经网络,在编码管道的所有步骤中都有反馈回路。添加这些选项是为了增加时间稳定性,从而减少动画过程中的闪烁。即使不使用无噪声的参考,使用(不相关的)噪声图像对,也可以训练去噪器。这样做可以简化训练,因为不需要生成真值(ground truth)图像。

        很明显,去噪现在是并将继续是真实实时渲染的一个重要课题,在这一领域将继续进行更多的研究。


与本节相关的参考文献:

【9】 Andersson, Johan, and Colin Barr´ e-Brisebois, “Shiny Pixels and Beyond: Real-Time Raytracing at SEED,” Game Developers Conference, Mar. 2018. Cited on p. 9, 10, 31, 36

【12】 Bitterli, Benedikt, Fabrice Rousselle, Bochang Moon, Jos´ e A. Iglesias-Guiti´ an, David Adler, Kenny Mitchell, Wojciech Jarosz, and Jan Nov´ ak, “Nonlinearly Weighted First-order Regression for Denoising Monte Carlo Renderings,” Computer Graphics Forum, vol. 35, no. 4, pp. 107–117, 2016. Cited on p. 28

【13】 Chaitanya, Chakravarty R. Alla, Anton S. Kaplanyan, Christoph Schied, Marco Salvi, Aaron Lefohn, Derek Nowrouzezahrai, and Timo Aila, “Interactive Reconstruction of Monte Carlo Image Sequences Using a Recurrent Denoising Autoencoder,” ACM Transactions on Graphics, vol. 36, no. 4, article no. 98, pp. 2017. Cited on p. 28, 30, 33

【16】 Dammertz, Holger, Daniel Sewtz, Johannes Hanika, and Hendrik Lensch, “Edge-Avoiding ÀTrous Wavelet Transform for fast Global Illumination Filtering,” High Performance Graphics, pp. 67–75, 2010. Cited on p. 29

【17】 Durand, Fr´ edo, Nicolas Holzschuch, Cyril Soler, Eric Chan, and Fran¸ cois X. Sillion, “A Frequency Analysis of Light Transport,” ACM Transactions on Graphics, vol. 24, no. 3, pp. 1115– 1126, 2005. Cited on p. 30

【24】 Glassner, Andrew, Deep Learning, Vol. 1: From Basics to Practice, Amazon Digital Services LLC, 2018. Cited on p. 33

【25】 Glassner, Andrew, Deep Learning, Vol. 2: From Basics to Practice, Amazon Digital Services LLC, 2018. Cited on p. 33

【29】Hanika, Johannes, Holger Dammertz, and Hendrik Lensch, “Edge-Optimized À-Trous Wavelets for Local Contrast Enhancement with Robust Denoising,” Pacific Graphics, pp. 67– 75, 2011. Cited on p. 29

【35】 Heitz, Eric, Stephen Hill, and Morgan McGuire, “Combining Analytic Direct Illumination and Stochastic Shadows,” Symposium on Interactive 3D Graphics and Games, pp. 2:1–2:11, 2018. Cited on p. 13, 29, 30, 36

【36】 Hillaire, S´ ebastien, “Real-Time Raytracing for Interactive Global Illumination Workflows in Frostbite,” Game Developers Conference, Mar. 2018. Cited on p. 31

【51】 Liu, Edward, “Low Sample Count Ray Tracing with NVIDIA’s Ray Tracing Denoisers,” SIGGRAPH NVIDIA Exhibitor Session: Real-Time Ray Tracing, 2018. Cited on p. 30, 36

【52】 Llamas, Ignacio, and Edward Liu, “Ray Tracing in Games with NVIDIA RTX,” Game Developers Conference, Mar. 21, 2018. Cited on p. 30

【54】 Mehta, Soham Uday, Brandon Wang, and Ravi Ramamoorthi, “Axis-Aligned Filtering for Interactive Sampled Soft Shadows,” ACM Transactions on Graphics, vol. 31, no. 6, pp. 163:1– 163:10, 2012. Cited on p. 30

【55】 Mehta, Soham Uday, Brandon Wang, Ravi Ramamoorthi, and Fredo Durand, “Axis-Aligned Filtering for Interactive Physically-Based Diffuse Indirect Lighting,” ACM Transactions on Graphics, vol. 32, no. 4, pp. 96:1–96:12, 2013. Cited on p. 30

【56】 Mehta, Soham Uday, JiaXian Yao, Ravi Ramamoorthi, and Fredi Durand, “Factored Axisaligned Filtering for Rendering Multiple Distribution Effects,” ACM Transactions on Graphics, vol. 33, no. 4, pp. 57:1–57:12, 2014. Cited on p. 30

【57】 Mehta, Soham Uday, Axis-aligned Filtering for Interactive Physically-based Rendering, PhD thesis, Technical Report No. UCB/EECS-2015-66, University of California, Berkeley, 2015. Cited on p. 30

【60】 Moon, Bochang, Jose A. Iglesias-Guitian, Steven McDonagh, and Kenny Mitchell, “Noise Reduction on G-Buffers for Monte Carlo Filtering,” Computer Graphics Forum, vol. 34, no. 2, pp. 1–13, 2015. Cited on p. 33

【61】 Munkberg, J., J. Hasselgren, P. Clarberg, M. Andersson, and T. Akenine-M¨ oller, “Texture Space Caching and Reconstruction for Ray Tracing,” ACM Transactions on Graphics, vol. 35, no. 6, pp. 249:1–249:13, 2016. Cited on p. 27, 31

【69】 Schied, Christoph, Anton Kaplanyan, Chris Wyman, Anjul Patney, Chakravarty R. Alla Chaitanya, John Burgess, Shiqiu Liu, Carsten Dachsbacher, and Aaron Lefohn, “Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination,” High Performance Graphics, pp. 2:1–2:12, July 2017. Cited on p. 28, 29, 30, 31

【70】 Schied, Christoph, Christoph Peters, and Carsten Dachsbacher, “Gradient Estimation for Real-Time Adaptive Temporal Filtering,” High Performance Graphics, August 2018. Cited on p. 30

【75】 Stachowiak, Tomasz, “Stochastic Screen-Space Reflections,” SIGGRAPH Advances in RealTime Rendering in Games course, Aug. 2015. Cited on p. 30

【76】 Stachowiak, Tomasz, “Stochastic All the Things: Raytracing in Hybrid Real-Time Rendering,” Digital Dragons, May 22, 2018. Cited on p. 9, 27, 28, 29, 30, 31

【96】 Zimmer, Henning, Fabrice Rousselle, Wenzel Jakob, Oliver Wang, David Adler, Wojciech Jarosz, Olga Sorkine-Hornung, and Alexander Sorkine-Hornung, “Path-space Motion Estimation and Decomposition for Robust Animation Filtering,” Computer Graphics Forum, vol. 34, no. 4, pp. 131–142, 2015. Cited on p. 28

【97】 Zwicker, M., W. Jarosz, J. Lehtinen, B. Moon, R. Ramamoorthi, F. Rousselle, P. Sen, C. Soler, and S.-E. Yoon, “Recent Advances in Adaptive Sampling and Reconstruction for Monte Carlo Rendering,” Computer Graphics Forum, vol. 34, no. 2, pp. 667–681, 2015. Cited on p. 28, 38


推荐文章
评论(0)
分享到
转载我的主页