生产环境中的 Path Guiding 与近期进展
Sebastian Herholz
Intel Corporation
德国卡尔斯鲁厄
Martin Sik
Chaos
捷克共和国布拉格
Lea Reichardt
Walt Disney Animation Studios
加拿大温哥华
lea.reichardt@disneyanimation.com
Marco Manzi
Disney Research Studios
瑞士苏黎世
marco.manzi@disneyresearch.com
摘要
在过去十年中,路径引导(path guiding)等先进的数据驱动采样算法已经从科学研究领域走进了生产渲染器 (Vorba et al. 2019)。这些算法能够渲染具有挑战性的光照效果(例如复杂的间接照明、焦散、体积多次散射,以及来自多个光源的被遮挡直接照明),这些效果对于生成高保真图像至关重要。由于这些算法主要聚焦于优化局部重要性采样决策,因此可以将它们集成到路径追踪器中——这是当今生产环境中事实上的标准渲染算法 (Fascione et al. 2019; Jakob et al. 2019)。这些算法背后的理论已在各种场合(如演讲或研究论文)中被介绍和讨论,其在生产中的实际应用也在之前的《Path Guiding in Production》课程中有所探讨。然而,将它们集成到生产渲染器中的实现细节或挑战通常不为外界所知,也鲜有公开讨论。本课程旨在深入讲解特定的引导算法是如何被集成到各种生产渲染器中并加以利用的,涵盖 Blender 的 Cycles、Chaos 的 VRay 和 Corona、SideFX 的 Karma,以及迪士尼动画的 Hyperion (Burley et al. 2018)。课程介绍的算法与集成方案可分为两大类:第一类利用场景的总光传输信息来引导整个采样过程;第二类则聚焦于引导特定效果,例如焦散。
CCS 概念
- 计算方法 → 渲染;光线追踪。
关键词
渲染,Monte Carlo,光传输,路径引导
ACM 引用格式
Sebastian Herholz, Martin Sik, Lea Reichardt, and Marco Manzi. 2025. Path Guiding in Production and Recent Advancements. In Special Interest Group on Computer Graphics and Interactive Techniques Conference Courses (SIGGRAPH Courses ’25), August 10–14, 2025, Vancouver, BC, Canada. ACM, New York, NY, USA, 5 pages. https://doi.org/10.1145/3721241.3733994
1 课程主讲人
本课程将由兼具学术背景和实际生产经验的渲染专家主讲。
1.1 Sebastian Herholz
Sebastian Herholz 是 Intel 的光线追踪工程师和光传输研究员。他在图宾根大学学习计算机科学,专注于计算机图形学,特别是 Monte Carlo 光传输模拟和重要性采样。他的主要研究方向是先进的重要性采样技术,如路径引导。2020 年,他加入 Intel,致力于将最先进的渲染算法应用于生产环境的日常使用。他的工作成果包含在 Intel 的 Open Path Guiding Library(OpenPGL)中,这是一个开源库,由他担任项目负责人。
1.2 Lea Reichardt
Lea Reichardt 是华特迪士尼动画工作室的软件工程师,是开发迪士尼 Hyperion 渲染器的渲染团队成员。她在苏黎世联邦理工学院学习计算机科学,专注于计算机图形学和机器学习。她目前在迪士尼动画的工作重点是 volume rendering 和路径引导。
1.3 Marco Manzi
Marco Manzi 是苏黎世迪士尼研究中心(Disney Research Studios)的一名研究科学家。他于 2016 年在伯尔尼大学(University of Bern)在 Matthias Zwicker 的指导下获得博士学位。他的研究兴趣包括 Monte Carlo 渲染的采样与重建方法、光传输算法,以及机器学习与渲染的交叉领域。
1.4 Martin Šik
Martin Šik 是 Chaos 公司的高级研究员兼 Corona Renderer 的首席开发者。Martin 于 2019 年在布拉格查理大学(Charles University in Prague)获得博士学位,师从 Jaroslav Křivánek。他的主要研究兴趣是真实感渲染,尤其专注于用于模拟光传输的 Markov chain Monte Carlo 和普通 Monte Carlo 方法。
2 课程形式
课程形式为讲座风格,配合幻灯片演示。三个主要主题各自由不同的讲者呈现。我们将尽可能在演示中展示我们在众多生产场景示例上的见解与经验。
- 引言(5-10 分钟)Sebastian Herholz
- 自上次课程以来的最新进展总结 (Vorba et al. 2019)
- Integrating Path Guiding into a Production Renderer: The Nitty Gritty Details(30 分钟)Sebastian Herholz
- 介绍 OpenPGL
- 讲解多个集成细节:
- 引导方向采样(Guided Directional Sampling)
- 路径引导与俄罗斯轮盘赌(Russian Roulette)
- 与下一事件估计(Next-Event Estimation)的结合
- 散射事件类型与光路表达式
- 通过粗糙化(Roughening)提升鲁棒性
- 其他集成挑战与建议
- Path Guiding in Hyperion: A Case Study(30 分钟)Lea Reichardt 与 Marco Manzi
- 将路径引导集成到波前(wavefront)渲染器(即 Hyperion)
- 在波前渲染器中记录路径引导训练数据的挑战
- 如何调试路径引导实现
- 将路径引导部署到生产渲染器(即 Hyperion)的经验与结果
- Efficient Rendering of Caustics: Photon Guiding at Corona(20-25 分钟)Martin Šik
- 展示传统路径引导在渲染焦散时的局限
- 介绍一种专门基于 VCM 的焦散渲染方案,该方案使用引导方法来分布光子
3 课程描述
本课程是 SIGGRAPH 2019 上《Path Guiding in Production》(Vorba et al. 2019) 课程的续篇。之前的课程聚焦于路径引导在生产渲染中有所帮助的使用场景,而本课程将聚焦于分享把路径引导集成到生产渲染器时面临的实现见解与挑战。第一节(3.2 节)汇集了在将路径引导集成到多个生产渲染器过程中积累的实现细节;第二节(3.3 节)是迪士尼动画关于在其自研渲染器 Hyperion 中试验路径引导时所遇挑战的详细案例研究;第三节(3.4 节)介绍在 Chaos 的 Corona 和 VRay 渲染器中实现的专用引导方法,用于高效模拟复杂的焦散效果。
3.1 引言
本课程首先简要回顾自 SIGGRAPH 2019 首次《Path Guiding in Production》课程 (Vorba et al. 2019) 以来,路径引导领域在研究与生产两方面取得的进展。我们还将回顾近期有哪些路径引导技术被生产环境采用,以及自那时起有哪些生产渲染器新增了对路径引导的支持。
3.2 将路径引导集成到生产渲染器:关键细节
本节首先简要回顾局部路径引导算法的概念及其如何提升渲染器效率,随后介绍 Intel 的 Open Path Guiding Library(OpenPGL)——一个用于将局部引导算法集成到生产渲染器中的开源框架。本节的后续部分将展示通过在生产渲染器(如 Blender、VRay、Karma 或迪士尼的 Hyperion,见 3.3 节)中多次集成 OpenPGL 等路径引导框架所积累的各种实现细节与见解。这些见解通常不会在路径引导的研究文献中出现或讨论。
3.2.1 介绍 OpenPGL
OpenPGL 是一个开源的路径引导库,采用了研究社区开发的多项技术 (Herholz et al. 2019; Müller et al. 2017; Rath et al. 2022; Ruppert et al. 2020; Vorba and Křivánek 2016; Xu et al. 2024),并对它们进行扩展和优化,使其达到生产可用的水平。它提供了一种简便的方式将多种局部路径引导技术集成到渲染器中,目前已被集成到多个生产渲染器中,包括 Blender、VRay、Karma 和迪士尼的 Hyperion。OpenPGL 提供与入射辐射率成正比的引导分布访问,并支持查询辐射率缓存,以获得出射、入射和内散射辐射率的估计。以下各节将聚焦于如何将 OpenPGL 这样的框架鲁棒地集成到生产渲染系统中。
3.2.2 引导方向采样
引导方向采样过程是局部路径引导的关键组成部分,它提高了渲染器的效率,并能够渲染具有挑战性的光传输效果。最常用的方法是使用单样本多重重要性采样(MIS)(Veach and Guibas 1995) 将 BSDF 重要性采样与正比于入射辐射率分布的引导分布相结合。遗憾的是,这种方法相比单独使用 BSDF 重要性采样,有时会降低采样质量;在最坏情况下,它会显著降低路径引导的效率,甚至可能不如标准路径追踪。因此,我们提出一种基于重采样重要性采样(RIS)(Talbot et al. 2005) 的引导方向采样方法,并整合了防御性采样(defensive sampling)(Hesterberg 1995)。由此得到的引导采样策略具有良好的鲁棒性,不会比 BSDF 重要性采样更差,甚至可以达到与完整乘积采样(product sampling)(Herholz et al. 2016) 相近的采样质量。
3.2.3 路径引导与俄罗斯轮盘赌
Vorba 等人 (2014) 的工作指出,将 Arvo 和 Kirk (1990) 提出的传统俄罗斯轮盘赌(RR)与路径引导一起使用会导致路径过早终止,从而显著损害其效率。在本节中,我们分析了产生这种行为的原因,并提出了一种简单而有效的解决方案,在使用路径引导时保持传统 RR 的预期行为。此外,我们还将讨论如何利用 OpenPGL 的特性高效实现更高级的 RR 技术,例如 adjoint-driven RR。
3.2.4 与下一事件估计的结合
直接光源采样,又称下一事件估计(NEE),是任何产品级渲染器中降低渲染多光源复杂场景时方差(即噪声)的关键组成部分。遗憾的是,NEE 与路径引导的结合与相互作用并不理想,许多路径引导研究工作甚至在其评估中禁用了 NEE。在此,我们将讨论将 NEE 与路径引导相结合的挑战,并提出一种解决方案——尽管该方案主要基于直觉而非理论背景,但在实践中效果良好。
3.2.5 散射事件类型与光路表达式
在每个路径顶点标记散射事件类型,以及使用光路表达式(light path expressions)对不同光传输贡献类型进行分类,是生产渲染中的关键特性。因此,我们将展示我们的解决方案:在使用路径引导采样散射方向后,稳健地估计散射事件类型。所得的散射事件类型统计结果与传统 BSDF 采样的结果相匹配,即使对于复杂的多闭包(multi-closure)BSDF 模型也是如此。
3.2.6 通过粗糙化提升鲁棒性
引导结构训练的鲁棒性,尤其是在面对具有挑战性的光传输设置时,可以通过在渲染过程中使用路径空间正则化(即粗糙化)技术来提升。我们将展示,即使是优化的路径空间正则化 (Weier et al. 2021) 的一个朴素版本——实现简单、仅带来极小视觉差异——也已经能显著提升质量和鲁棒性。
3.2.7 其他集成挑战与建议
本节最后讨论我们在将路径引导集成到各种生产和研究渲染器时遇到的一些其他挑战,并以一组建议作为结尾——关于在计划将路径引导集成到渲染器中时,如何开始并逐步推进。这是一份已在实践中多次被证明有用的”配方”。
3.3 Hyperion 中的路径引导:案例研究
在本节中,我们介绍在迪士尼 Hyperion 渲染器 (Burley et al. 2018) 中实现路径引导的方法。本节第一部分展示将路径引导集成到基于波前(wavefront)的渲染器中的困难,这类挑战在深度优先渲染器中并不存在(3.3.1 节)。
本节的第二部分聚焦于调试路径引导实现。我们展示了用于评估路径引导实现正确性的调试工具,并解释了为何我们建议任何将路径引导集成到渲染器中的人都使用可视化调试工具(3.3.2 节)。
在最后一部分,我们展示了路径引导生产测试中的经验与结果。特别地,我们展示了在生产测试中遇到的、生产环境所特有的挑战。我们将举例说明如何在生产环境中评估路径引导的性能,其中包括在研究环境中常被忽视的考量(3.3.3 节)。
3.3.1 将路径引导集成到波前渲染器中
将路径引导算法集成到广度优先的波前渲染器中,与集成到深度优先渲染器相比,面临一系列不同的挑战。将路径引导集成到深度优先渲染器是一个有详细文档记录的过程,存在许多参考实现。相反,将路径引导集成到波前渲染器在研究文献中受到的关注较少;然而,这对于生产渲染来说是一个关键问题,因为波前架构在生产中更为常见。我们展示了将 OpenPGL 集成到迪士尼 Hyperion 渲染器波前架构中的方法 (Burley et al. 2018);我们的新集成取代了此前对 Practical Path Guiding (Müller et al. 2017) 的实现 (Müller 2019)。特别地,我们将讨论如何记录用于训练引导缓存的辐射率,这需要大量的簿记工作。在波前路径追踪器中沿整条路径记录辐射率是困难的,因为在每次反弹时完整的路径历史不一定可用。我们展示了我们最近如何重做 Hyperion 中路径引导的训练数据生成实现来解决这个问题;我们的解决方案在保持结果无偏的同时简化了辐射率记录。
3.3.2 调试路径引导
我们展示了路径引导可视化工具,它对于理解路径引导对渲染结果的影响至关重要,并帮助我们发现了实现中的 bug。此外,我们讨论了调试辐射率记录的实际挑战。调试路径引导输入的一个主要困难在于:错误的输入往往仍能产生有用的结果。因此,仅通过观察路径引导的输出来发现错误输入是很困难的。我们提出了一种替代的调试输出:通过把记录的路径 splat 到帧缓冲上,直接可视化来自记录路径的辐射率。这种方法既直观又易于评估——正确的结果应当与 beauty 渲染完全一致。将该结果与前面提到的路径引导可视化工具相结合,我们就得到了两个相互独立的数据点,帮助我们对结果建立信心。
3.3.3 在生产中部署路径引导
我们讨论了在近期影片(如迪士尼的《Moana 2》和《Strange World》)的生产场景上测试路径引导实现的发现。在本节中,我们重点说明生产渲染环境与研究环境的差异,展示在 Hyperion 生产测试中遇到的示范性技术案例,以说明生产环境中可能影响路径引导性能的因素。我们讨论了生产镜头中极高密度的体积如何促使我们优化辐射率记录策略,以改进对较晚反弹的辐射率记录。此外,我们讨论了在 Hyperion 中采用路径引导迭代调度(iteration schedule)所需的技术细节。我们还讨论了生产渲染环境下路径引导的评估指标——这些指标在研究环境中经常被忽视。最后,我们将展示在生产场景上使用路径引导的结果。
3.4 焦散的高效渲染:Corona 中的光子引导
在课程的这部分中,我们将讨论 Chaos 的 Corona 渲染器中用于渲染焦散的算法。在开发焦散求解器的过程中,我们试验了包括路径引导在内的多种焦散渲染算法。虽然路径引导在处理漫反射间接照明方面非常有效,但我们发现与基于光子的算法相比,它在处理焦散时效率并不高。因此,Corona 的焦散求解器使用光子来渲染焦散。更具体地说,我们利用轻量版的顶点连接与合并算法(VCM)(Georgiev et al. 2012),并结合高效的光子引导。尽管该算法的一部分此前已经发表 (Šik and Křivánek 2019),但我们对焦散求解器做了若干改进,将在本课程中讨论。
3.4.1 光源上的分层采样
我们的光子引导算法基于 Markov chain Monte Carlo (Metropolis et al. 1953)。虽然这种采样方法能有效地将光子引导到最需要的地方,但它往往会对场景的某些部分过采样或欠采样。在拥有大量光源的场景中尤其如此——来自某个光源的焦散可能比来自其他光源的焦散收敛得快得多。为缓解这一问题,我们在焦散求解器中使用了多条 Markov 链,这使我们能够显著改善生成的光子在所有光源上的分层分布。
3.4.2 光子引导
Markov chain Monte Carlo 的另一个弱点是它依赖无信息的均匀采样(所谓的大步长)来频繁访问场景中的所有重要部分。为了在焦散求解器中缓解这一问题,我们采用了 Markov chain Monte Carlo 与光源光子发射自适应采样相结合的方法。这使得我们的算法能够频繁采样场景的所有重要部分,从而提高焦散收敛的速度和均匀性。
3.4.3 光子数量自动化
基于光子的算法的一个难点是确定每次渲染迭代中的光子数量。在具有运动模糊和/或色散的场景中尤其如此,因为在合并过程中许多光子会被拒绝。光子数量通常被留作用户参数,需要用户自行找到一个足够好的值。但我们的焦散求解器并非如此——我们开发了一种自动方法,用于确定每次渲染迭代中应生成的足够光子数量。
3.4.4 体积焦散
Corona 焦散求解器的初始版本只能解析在表面上形成的焦散。为了拓宽用户的选择,我们为求解器添加了对体积焦散的处理。我们将讨论选择了哪种估计器来计算体积焦散,以及如何将体积中的光子引导到场景的重要部分。
4 学习目标与成果
在本课程结束时,来自生产和渲染研究社区的与会者获得了关于将路径引导集成到复杂渲染系统(如生产环境中出现的系统)时所面临的挑战及其解决方法的额外知识。我们希望这些知识不仅能帮助生产渲染器的开发者,也能帮助研究人员使其集成更加鲁棒。此外,我们希望我们所指出的挑战(例如高效的训练数据生成与存储、高效引导焦散、或纳入并考虑 NEE)将激励研究人员开发新的算法和解决方案,以进一步提高路径引导的实用性和采用率。
参考文献
- James Arvo and David Kirk. 1990. Particle Transport and Image Synthesis. SIGGRAPH Comput. Graph. 24, 4 (Sept. 1990), 63–66.
- Brent Burley, David Adler, Matt Jen-Yuan Chiang, Hank Driskill, Ralf Habel, Patrick Kelly, Peter Kutz, Yining Karl Li, and Dan Teece. 2018. The Design and Evolution of Disney’s Hyperion Renderer. ACM Transactions on Graphics 37, 3, Article 33 (Aug. 2018).
- Luca Fascione, Johannes Hanika, Daniel Heckenberg, Christopher Kulla, Marc Droske, and Jorge Schwarzhaupt. 2019. Path Tracing in Production: Part 1: Modern Path Tracing. In ACM SIGGRAPH 2019 Courses (SIGGRAPH ’19). Article 19, 113 pages.
- Iliyan Georgiev, Jaroslav Křivánek, Tomáš Davidovič, and Philipp Slusallek. 2012. Light Transport Simulation with Vertex Connection and Merging. ACM Trans. Graph. 31, 6, Article 192 (Nov. 2012), 10 pages.
- Sebastian Herholz, Oskar Elek, Jiří Vorba, Hendrik Lensch, and Jaroslav Křivánek. 2016. Product importance sampling for light transport path guiding. Computer Graphics Forum 35, 4 (2016), 67–77.
- Sebastian Herholz, Yangyang Zhao, Oskar Elek, Derek Nowrouzezahrai, Hendrik P. A. Lensch, and Jaroslav Křivánek. 2019. Volume Path Guiding Based on Zero-Variance Random Walk Theory. ACM Trans. Graph. 38, 3, Article 25 (Jun. 2019), 19 pages.
- Tim Hesterberg. 1995. Weighted Average Importance Sampling and Defensive Mixture Distributions. Technometrics 37, 2 (1995), 185–194.
- Wenzel Jakob, Andrea Weidlich, Andrew Beddini, Rob Pieké, Hanzhi Tang, Luca Fascione, and Johannes Hanika. 2019. Path Tracing in Production: Part 2: Making Movies. In ACM SIGGRAPH 2019 Courses (SIGGRAPH ’19). Article 20, 41 pages.
- Nicholas Metropolis, Arianna W. Rosenbluth, Marshall N. Rosenbluth, Augusta H. Teller, and Edward Teller. 1953. Equation of state calculations by fast computing machines. The Journal of Chemical Physics 21, 6 (1953), 1087–1092.
- Thomas Müller. 2019. “Practical Path Guiding” in Production. In ACM SIGGRAPH Courses: Path Guiding in Production, Chapter 10. ACM, 18:35–18:48.
- Thomas Müller, Markus Gross, and Jan Novák. 2017. Practical Path Guiding for Efficient Light-Transport Simulation. Computer Graphics Forum (Proceedings of EGSR) 36, 4 (June 2017), 91–100.
- Alexander Rath, Pascal Grittmann, Sebastian Herholz, Philippe Weier, and Philipp Slusallek. 2022. EARS: Efficiency-Aware Russian Roulette and Splitting. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2022) 41, 4, Article 81 (Jul. 2022), 14 pages.
- Lukas Ruppert, Sebastian Herholz, and Hendrik P. A. Lensch. 2020. Robust Fitting of Parallax-Aware Mixtures for Path Guiding. ACM Trans. Graph. 39, 4, Article 147 (Aug. 2020), 15 pages.
- Martin Šik and Jaroslav Křivánek. 2019. Implementing One-Click Caustics in Corona Renderer. In Eurographics Symposium on Rendering - DL-only and Industry Track. The Eurographics Association, 61–67.
- Justin F. Talbot, David Cline, and Parris Egbert. 2005. Importance resampling for global illumination. In Proc. EGSR. 139–146.
- Eric Veach and Leonidas J. Guibas. 1995. Optimally Combining Sampling Techniques for Monte Carlo Rendering, Vol. 29. 419–428.
- Jiří Vorba, Johannes Hanika, Sebastian Herholz, Thomas Müller, Jaroslav Křivánek, and Alexander Keller. 2019. Path Guiding in Production. In ACM SIGGRAPH 2019 Courses (SIGGRAPH ’19). Article 18, 77 pages.
- Jiří Vorba, Ondřej Karlík, Martin Šik, Tobias Ritschel, and Jaroslav Křivánek. 2014. On-Line Learning of Parametric Mixture Models for Light Transport Simulation. ACM Trans. Graph. 33, 4, Article 101 (Jul. 2014), 11 pages.
- Jiří Vorba and Jaroslav Křivánek. 2016. Adjoint-driven Russian roulette and splitting in light transport simulation. ACM Trans. Graph. 35, 4 (2016), 42:1–42:11.
- Philippe Weier, Marc Droske, Johannes Hanika, Andrea Weidlich, and Jiří Vorba. 2021. Optimised Path Space Regularisation. Computer Graphics Forum 40, 4 (2021), 139–151.
- Kehan Xu, Sebastian Herholz, Marco Manzi, Marios Papas, and Markus Gross. 2024. Volume Scattering Probability Guiding. ACM Trans. Graph. 43, 6, Article 184 (Nov. 2024), 17 pages.