生产环境中的 Path Guiding 与近期进展
Sebastian Herholz
Intel Corporation
Karlsruhe, 德国
Martin Sik
Chaos
Prague, 捷克共和国
Lea Reichardt
Walt Disney Animation
Studios
Vancouver, 加拿大
Marco Manzi
Disney Research Studios
Zurich, 瑞士
marco.manzi@disneyresearch.com
lea.reichardt@disneyanimation.com

图1:路径引导算法在生产渲染器中的不同集成示例,如Blender的Cycles、Chaos的Corona和迪士尼动画的Hyperion。这些图像展示了不同的引导特定用例,例如复杂的多次反弹间接照明和焦散。第一张图:场景由Jesús Sandoval提供。第三张图:Moana 2 ©2024 Disney。
摘要
在过去十年中,先进的数据驱动采样算法,如路径引导,已从科学领域进入生产渲染器 . These algorithms enable the rendering of challenging lighting effects (e.g., complex indirect illumination, caustics, volumetric multi-scattering, and occluded direct illumination from multiple lights), which are crucial for generating high-fidelity images. The fact that these algorithms primarily focus on optimizing local importance sampling decisions makes it possible to integrate them into a path tracer, the de facto standard rendering algorithm used in production today (,$$ Jakob et al. 2019
or challenges associated with integrating them into a production render are usually unknown or not publicly discussed. This course aims to provide a deeper understanding of how specific guiding algorithms are integrated into and utilized in various production renderers, including Blender’s Cycles, Chaos’s VRay and Corona, SideFX’s Karma, and Disney Animation’s Hyperion $$ Burley et al. 2018 $$. The presented algorithms and integrations can be categorized into two main groups: the first aims to guide the entire sampling process by utilizing information about the total light transport of the scene, and the second focuses on guiding specific effects, such as caustics. ## 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 (SIG-GRAPH 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 render: The Nitty Gritty Details (30min) Sebastian Herholz
– Introducing OpenPGL
– Presentation of multiple integration details:
∗ Guided Directional Sampling
∗ Path Guiding and Russian Roulette
∗ Combination with Next-Event Estimation
∗ Scattering Event Types and Light Path Expressions
∗ Improving Robustness via Roughening
– Additional Integration Challenges and Advice
• Path Guiding in Hyperion: A Case Study (30min) Lea Reichardt and Marco Manzi
– Integrating path guiding into a wavefront renderer (i.e., Hyperion)
– Challenges of recording training data for path guiding when using a wavefront renderer
– How to debug your path guiding implementation
– Learnings and results from deploying path guiding into a production renderer (i.e., Hyperion).
• Efficient Rendering of Caustics: Photon Guiding at Corona (20-25min) Martin Šik
– Showcasing the limitations of traditional path guiding when rendering caustics
– Presentation of a specialized VCM-based solution for rendering caustics that uses a guiding approach for distributing photons
3 Course Description
This course is the successor of the previous course on Path Guiding in Production $$ Vorba et al. 2019
## 3.1 引言 本课程首先简要回顾自首次《Path Guiding in Production》课程以来,在路径引导领域的研究与生产方面的进展 $$ Vorba et al. 2019 $$ held at SIGGRAPH 2019. We will also recap which path guiding techniques were adopted recently in production and which production renderers added support for path guiding since then. # 3.2 Integrating Path Guiding into a Production Render: The Nitty Gritty Details In this section, we briefly recap the concept of local path guiding algorithms and how they improve the efficiency of a renderer, followed by an introduction to Intel’s Open Path Guiding Library (OpenPGL), an open-source framework for integrating local guiding algorithms into a production renderer. The following parts of this section focus on presenting various implementation details and insights gathered through multiple integrations of path guiding frameworks such as OpenPGL in production renderers such as Blender, VRay, Karma, or Disney’s Hyperion (Sec. 3.3). These insights are usually not found or discussed in path guiding research literature. 3.2.1 Introducing OpenPGL. OpenPGL is an open-source path guiding library that adopts multiple techniques developed by the research community $$ 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 $$ and extends and optimizes them to make them production-ready. It offers an easy way to integrate multiple local path guiding techniques into a renderer and is now integrated into several production renderers, including Blender, VRay, Karma, and Disney’s Hyperion. OpenPGL provides access to guiding distributions that are proportional to the incoming radiance, as well as querying a radiance cache to get estimates of the outgoing, incoming, and in-scattered radiance. The following sections focus on how a framework like OpenPGL can be integrated robustly into a production rendering system. 3.2.2 引导方向采样。引导方向采样过程是局部路径引导的关键组成部分,它提高了渲染器的效率,并能够渲染具有挑战性的光传输效果。最常用的方法是使用单样本多重重要性采样(MIS)将 BSDF 重要性采样与正比于入射辐射率分布的引导分布相结合 $$ Veach and Guibas 1995 $$. Unfortunately, this approach can sometimes decrease the sampling quality compared to BSDF importance sampling alone, which, in the worst case, reduces the efficiency of path guiding so significantly that it can even become inferior to standard path tracing. We therefore present a guided directional sampling approach based on resampling importance sampling (RIS) $$ Talbot et al. 2005 $$ that also integrates defensive sampling $$ Hesterberg 1995 $$. Our resulting guided sampling strategy is robust, avoids being worse than BSDF importance sampling, and can even achieve similar sampling quality as full product sampling $$ Herholz et al. 2016 $$. 3.2.3 路径引导与俄罗斯轮盘赌。Vorba 等人 $$ 的工作 2014 $$ highlighted that using traditional Russian Roulette (RR), as presented by Arvo and Kirk $$ 1990 $$, with path guiding leads to early path terminations, which significantly impairs its efficiency. In this section, we analyze the reason for this behavior and present a simple but effective solution to retain the intended behavior of traditional RR when using path guiding. In addition, we will also discuss how to efficiently implement more advanced RR techniques, such as adjoint-driven RR, using the features of OpenPGL. 3.2.4 与下一事件估计的结合。直接光源采样,又称下一事件估计(NEE),是任何产品级渲染器中减少渲染具有众多光源的复杂场景时方差(即噪声)的关键组成部分。不幸的是,NEE 与路径引导的结合与相互作用,以及许多路径引导研究工作,在其评估中甚至禁用了 NEE。在此,我们将讨论将 NEE 与路径引导相结合的挑战,并提出一种解决方案,尽管该方案主要基于直觉而非理论背景,但在实践中效果良好。 3.2.5 散射事件类型与光路表达式。在每个路径顶点标记散射事件类型,以及使用光路表达式对不同光传输贡献类型进行分类,是生产渲染中的关键特性。因此,我们将展示我们的解决方案,在使用路径引导采样散射方向后,稳健地估计散射事件类型。所得的散射事件类型统计结果与传统 BSDF 采样的结果相匹配,即使对于复杂的多闭包 BSDF 模型也是如此。 3.2.6 通过粗糙化提升鲁棒性。引导结构训练的鲁棒性,尤其是在面对具有挑战性的光传输设置时,可以通过在渲染过程中使用路径空间正则化(即粗糙化)技术来提升。我们将展示,即使是优化路径空间正则化的一个简单实现、仅带来极小视觉差异的朴素版本,$$ Weier et al. 2021 $$ already leads to a significant improvement in quality and robustness. 3.2.7 Additional Integration Challenges and Advice. This section concludes by discussing some additional challenges we encountered when integrating path guiding into various production and research renderers. It ends with a list of advice on how to start and stepby-step progress when planning to integrate path guiding into a renderer. A receipt that has proven to be useful multiple times. # 3.3 Path Guiding in Hyperion: A Case Study In this section, we present our approach to implementing path guiding into Disney’s Hyperion Renderer $$ Burley et al. 2018 $$. The first part of the section showcases the difficulty of integrating path guiding into a wavefront-based renderer, which poses a set of challenges that do not exist in a depth-first renderer (Sec. 3.3.1). 本节下一部分聚焦于调试路径引导实现。我们展示了用于评估路径引导实现正确性的调试工具,并解释了为何我们建议任何将路径引导集成到渲染器中的人都使用可视化调试工具(第 3.3.2 节)。 在最后一部分,我们展示了路径引导的生产测试中的经验与结果。特别地,我们展示了在生产测试中遇到的、生产环境所特有的挑战。我们将举例说明如何在生产环境中评估路径引导的性能,其中包括在研究环境中常被忽视的考量(第 3.3.3 节)。 3.3.1 将路径引导集成到波前渲染器中。将路径引导算法集成到广度优先的波前渲染器中,与集成到深度优先渲染器相比,面临一系列不同的挑战。将路径引导集成到深度优先渲染器是一个有详细文档记录的过程,存在许多参考实现。相反,将路径引导集成到波前渲染器在研究文献中受到的关注较少;然而,这对于生产渲染来说是一个关键问题,因为波前架构在生产中更为常见。我们展示了将 OpenPGL 集成到迪士尼 Hyperion 渲染器的波前架构中的方法 $$ Burley et al. 2018 $$; our new integration supersedes our previous implementation $$ Müller 2019 $$ of Practical Path Guiding $$ Müller et al. 2017 $$. In particular, we will discuss how we record radiance for training guiding caches, which requires extensive bookkeeping. Recording radiance along entire paths is difficult in wavefront path tracers, where the whole path history is not necessarily always available at each bounce. We present how we recently reworked our training data generation implementation for path guiding in Hyperion to solve this problem; our solution simplifies the recording of radiance while maintaining unbiased results. 3.3.2 Debugging Path Guiding. We show our path guiding visualizer tool that was crucial to understanding the effects path guiding had on our renders, and helped us find bugs in our implementation. Moreover, we discuss practical challenges in debugging radiance recording. A major challenge to debugging inputs to path guiding comes from the fact that incorrect inputs to path guiding can often still produce useful results. Thus, incorrect inputs can be difficult to detect only by looking at the path guiding outputs. We present an alternative debugging output that visualizes the radiance from the recorded paths directly, by splatting the recorded paths to a frame buffer. This approach is both intuitive and simple to evaluate; a correct result should simply match the beauty rendering. By combining this result with our aforementioned path guiding visualization tool, we get two independent data points that help us gain confidence in our results. 3.3.3 Deploying Path Guiding in Production. We discuss our findings from testing our path guiding implementation on production scenes from recent shows such as Disney’s “Moana 2” and “Strange World”. In this section, we highlight how a production rendering context differs from a research context. We show illustrative technical examples we encountered during production testing in Hyperion to showcase aspects that can affect path guiding performance in a production environment. We discuss how extremely dense volumes in a production shot motivated an optimization in our radiance recording strategy to improve recording radiance at later bounces. Moreover, we discuss the technical details necessary to employ a path guiding iteration schedule in Hyperion. We also discuss evaluation metrics for path guiding in a production rendering context, which are often overlooked in research contexts. And lastly, we will show the results of using path guiding on our production scenes. # 3.4 Efficient Rendering of Caustics: Photon Guiding at Corona In this part of the course, we will discuss an algorithm for rendering caustics used in Chaos’s Corona renderer1. During the development of our caustics solver, we have experimented with various algorithms for rendering caustics, including path guiding. While path guiding is very effective at handling diffuse indirect illumination, we have found out that it is not as efficient at handling caustics compared to photon-based algorithms. Therefore, Corona’s caustics solver uses photons to render caustics. More specifically, we utilize a lightweight version of the vertex connection and merging algorithm (VCM) $$ Georgiev et al. 2012 $$ together with efficient guiding of the photons. Although part of this algorithm has already been presented $$ Šik and Křivánek 2019 $$, we have made several improvements to our caustics solver, which we will discuss in this course. 3.4.1 Stratification over Light Sources. Our photon guiding algorithm is based on Markov chain Monte Carlo $$ Metropolis et al. 1953 $$. While this sampling method is effective at guiding photons where they are most needed, it can often over-sample or under-sample parts of the scene. This is especially true in scenes with many light sources, where caustics from one light source may converge much faster than caustics from other light sources. To mitigate this issue, we utilize multiple Markov chains in our caustics solver. This allows us to significantly improve the stratification of generated photons over all the light sources. 3.4.2 光子引导。Markov chain Monte Carlo 的另一个弱点是它依赖无信息的均匀采样(所谓的大步长)来频繁访问场景中的所有重要部分。为了在我们的焦散求解器中缓解这一问题,我们采用了 Markov chain Monte Carlo 与光源光子发射的自适应采样相结合的方法。这使得我们的算法能够频繁采样场景的所有重要部分,从而提高了焦散收敛的速度和均匀性。 3.4.3 光子数量自动化。基于光子的算法的一个难点是确定每次渲染迭代中的光子数量。在具有运动模糊和/或色散的场景中尤其如此,因为在合并过程中许多光子会被拒绝。光子数量通常留作用户参数,因此需要用户自行找到一个足够好的值。对于我们的焦散求解器来说并非如此,因为我们开发了一种自动方法来确定每次渲染迭代中生成的足够光子数量。 3.4.4 体积焦散。Corona 焦散求解器的初始版本只能解析在表面上形成的焦散。为了拓宽用户的选择,我们为求解器添加了对体积焦散的处理。我们将讨论我们选择了哪种估计器来计算体积焦散,以及我们如何将体积中的光子引导到场景的重要部分。 ## 4 学习目标与成果 在本课程结束时,来自生产和渲染研究社区的与会者获得了关于将路径引导集成到复杂渲染系统(如生产环境中出现的系统)时所面临的挑战及其解决方法的额外知识。我们希望这些知识不仅能帮助生产渲染器的开发者,也能帮助研究人员使其集成更加鲁棒。此外,我们希望我们所指出的挑战(例如,高效的训练数据生成与存储、高效引导焦散、或纳入并考虑 NEE)将激励研究人员开发新的算法和解决方案,以进一步提高路径引导的实用性和采用率。