引言

Segment-based Light Transport Simulation》是 Wenyou Wang 等人在 SIGGRAPH 2025 上提出的一种通用光传输模拟框架1。该框架在传统的基于顶点(vertex-based)的光传输模拟基础上推广出基于线段(segment-based)的表述,使其能够自然地适应多种包含断开子路径的光传输算法。在这一理论框架下,论文定义了线段采样器(segment sampler)和线段估计器(segment estimator),并讨论了基于线段的路径追踪、双向路径追踪和双向路径过滤等实例。本文是笔者对该论文的阅读笔记。本篇文章涉及的知识较多,笔者会尽量在文中补充必要背景。

传统的基于顶点的光传输模拟

直接连接路径的局限性

在传统的蒙特卡洛渲染中,通常通过采样连接光源与传感器的光传输路径来估计图像。此时,采样对象是一个有序的顶点序列 \(\left\langle \mathrm{v}_1, \mathrm{v}_2, \mathrm{v}_3, \ldots, \mathrm{v}_n \right\rangle\)。相邻顶点由线段连接,构成一条连续、完整的光路。然而,这类完整路径在某些情况下很难采样。如 1b)所示,对于 \(\mathrm{SSS}\)specular-specular-specular)路径,一旦入射方向确定,理想镜面 BSDF 只允许沿反射定律给出的方向继续传播,因此可以顺着镜面链逐段追踪。对于 \(\mathrm{SDS}\)specular-diffuse-specular)路径,在漫反射顶点处,传统单向路径追踪(PT)需要在整个半球上随机采样出射方向。能经过后续镜面反射到达光源或下一个镜面反射平面的方向集合通常很小,如 1a)中的 \(\Omega^\star\),因此样本很容易偏离这条路径。双向路径追踪(BDPT)虽然从相机和光源两端生成子路径,但当连接端点落在理想镜面上时,常规顶点连接必须恰好满足镜面反射约束才有效,而恰好生成复合约束的样本的概率几乎为 0,因此同样很难构造这类 \(\mathrm{SDS}\) 路径。

SDS 路径与 SSS 路径的对比
1SDS 路径与 SSS 路径的对比

断开路径复用

在光子密度估计(photon density estimation)和路径滤波(path filtering)等现代渲染方法中,通常先采样断开的光传输子路径,再近似构造完整路径,以提高样本复用效率256。简单来说,这类方法不要求采样阶段的子路径已经完全连接。如 2所示,在断开路径中,相邻子路径的连接端点可以不重合,而只需落在所用核函数的支撑范围内。

连续路径与断开路径
2:连续路径与断开路径

如上一节所述,对于传统的直接连接路径,直接采样到高贡献路径区域较为困难。而复用断开的子路径可以更有效地利用已有样本,但固定的非零核宽会引入偏差。

断开路径引发的问题

复用断开的子路径提高了已有样本的利用率,但真实的光传输路径在几何上仍然是连续的。如 2b)所示,\(\mathrm{B}_2\) \(\mathrm{B}_3\) 是相邻两条线段上彼此分离的端点。若要在传统路径积分框架中使用这类断开样本,需要先将其对应到一条连通路径;未被保留在连通路径中的端点便成为额外顶点(extra vertex)。

顶点合并

Georgiev 等人在 2012 年提出的 VCM 框架(Vertex Connection and Merging)中统一了顶点连接与顶点合并(vertex merging2。其采用一种拒绝采样策略,在顶点合并中,当两个顶点 \(\mathrm{v}_1\) \(\mathrm{v}_2\) 相距足够近,即 \(\lVert \mathrm{v}_2 - \mathrm{v}_1 \rVert < r\) 时,二者被视为合并,并通过核函数 \(K_r\left(\mathrm{v}_1,\mathrm{v}_2\right)\) 计算该路径的贡献。以均匀圆盘核为例:

\[ K_r\left(\mathrm{v}_1,\mathrm{v}_2\right) = \dfrac{1}{\pi r^2}\mathbf{1}\!\left[\lVert \mathrm{v}_2 - \mathrm{v}_1 \rVert<r\right] \tag{1} \]

其中 \(\mathbf{1}[\cdot]\) 为指示函数,\(\dfrac{1}{\pi r^2}\) 为归一化因子。在局部平面近似下,\(K_r\) 可视为定义在场景表面流形 \(\mathcal{M}\) 上的均匀圆盘核。

边缘化处理

对于这类断开路径,可以将额外顶点视为条件采样过程中的辅助随机变量,并对其进行边缘化。West 等人在 CMIS 中将 MIS 推广到连续策略空间5,又在 MMIS 中进一步将每个边缘化域视为连续策略空间,以可求值的条件 PDF 处理难以直接求值的边缘 PDF6。在继续讨论之前,有几个概念需要补充。

策略空间

策略空间 \(\mathcal{T}\) 是采样策略(technique)的集合。策略是从某个 PDF 生成路径样本的方法。以着色点为例,我们可以使用以下两种采样方法:

  • 策略一(\(i=1\))采样光源:直接将着色点与光源连线,此时它的概率密度函数(PDF)是 \(p\left(X \mid t=1\right)\)
  • 策略二(\(i=2\))采样 BSDF:根据材质的粗糙度随机发射一条射线,测试其是否命中光源,其 PDF \(p\left(X \mid t=2\right)\)

于是我们就有策略空间 \(\mathcal{T}=\left\{ 1, 2 \right\}\)。这里的 \(1\) \(2\) 是策略的离散索引。

多重重要性采样

不同策略有其擅长之处,比方说策略 \(i=1\) 在光源较小时更有优势,策略 \(i=2\) 则在材质高光较强时更有优势。为了同时利用多种策略,我们需要引入多重重要性采样(Multiple Importance SamplingMIS)。

假设被积函数为 \(f\)。使用两种策略 \(i=1\)\(i=2\) 进行重要性采样,可以得到 \(X_1 \sim p\left(X \mid t=1\right)\)\(X_2 \sim p\left(X \mid t=2\right)\),对应的单样本估计量分别为 \(\hat{I}_1=\dfrac{f\left(X_{1}\right)}{p\left(X_{1} \mid t=1\right)}\)\(\hat{I}_2=\dfrac{f\left(X_{2}\right)}{p\left(X_{2} \mid t=2\right)}\)。若要同时考虑这两种采样策略,可以简单地将它们的采样结果平均:

\[ \hat{I} = \frac{1}{2}\left[ \dfrac{f\left(X_{1}\right)}{p\left(X_{1} \mid t=1\right)} + \dfrac{f\left(X_{2}\right)}{p\left(X_{2} \mid t=2\right)} \right] \tag{2} \]

对于特定样本 \(X\),我们希望更适合生成该样本的策略获得更高的权重。因此,对于含 \(T\) 种采样策略的策略空间 \(\mathcal{T}\),引入权重 \(w_i\left(X\right)\) 表示第 \(i\) 个策略对该样本的贡献,并要求 \(\sum^{T}_{i=1}w_i\left(X\right)=1\)。假设第 \(i\) 个采样策略总共生成 \(n_i\) 个样本,则该策略的估计量为:

\[ \hat{I}_{i} = \frac{1}{n_i}\sum^{n_i}_{j=1}\frac{f\left(X_{i,j}\right)}{p\left(X_{i,j} \mid t=i\right)} \tag{3} \]

其中第 \(i\) 个策略的条件 PDF \(p\left(X \mid t=i\right)\)。使用 \(w_i\left(X\right)\) 加权组合后:

\[ \hat{I} = \sum^{T}_{i=1}\sum^{n_i}_{j=1}\frac{w_i\left(X_{i, j}\right)f\left(X_{i, j}\right)}{n_ip\left(X_{i, j} \mid t=i\right)} \tag{4} \]

其中 \(X_{i, j}\) 表示第 \(i\) 个策略生成的第 \(j\) 个样本。

前面的平均例子取 \(w_i\left(X\right)=\dfrac{1}{T}\)。一个更常用的选择是平衡启发式(Balance Heuristic):

\[ w_i\left(X\right)=\frac{n_ip\left(X \mid t=i\right)}{\sum^{T}_{k=1} n_kp\left(X \mid t=k\right)} \tag{5} \]

从式子中可以看出,越容易生成 \(X\) 的策略权重越大,因为 \(n_ip\left(X \mid t=i\right)\) 越大。

连续策略空间

传统 MIS 的策略空间通常是离散的。CMIS 将其推广为由连续参数索引的策略族。对于上文的断开路径,可以用端点偏移量 \(\Delta = \mathrm{v}_2 - \mathrm{v}_1\) 参数化条件采样策略;随着 \(\Delta\) 连续变化,策略空间 \(\mathcal{T}\) 也成为连续空间。

CMISSMIS 与边缘化

在连续策略空间上,由于此时策略空间变为连续的,采样过程被分为了两步。首先采样一个策略 \(t \sim p\left(t\right)\),其中 \(p(t)\) 表示选择策略 \(t\) 的密度,\(p\left(X \mid t\right)\) 表示该策略的条件 PDF。再根据策略 \(t\) 去采样 \(X\)。所以最终的样本变成了联合随机变量 \(\left(t, X\right)\),而他们的联合 PDF 变为 \(p\left(t, X\right)=p\left(t\right)p\left(X \mid t\right)\),所以连续多重重要性采样(CMIS)的单样本估计量写为:

\[ \hat{I}_{\mathrm{CMIS}} = \frac{w\left(t,X\right)f\left(X\right)}{p\left(t\right)p\left(X \mid t\right)} \tag{6} \]

其中的权重 \(w\left(t,X\right)\) 满足 \(\int_{\mathcal{T}}w\left(t,X\right)\text{d} t=1\)

而在实际采样过程中,虽然我们产生的是联合样本 \(\left(t, X\right)\),但其实我们唯一关注的是 \(X\) 而不关心其是由哪个策略生成的。因此我们要对辅助变量 \(t\) 进行边缘化(marginalize)。具体来说,就是根据概率链式法则,在策略空间 \(\mathcal{T}\) 上对 \(t\) 积分,从而得到 \(X\) 的边缘 PDF

\[ p\left(X\right)=\int_{\mathcal{T}}p\left(t\right)p\left(X \mid t\right)\text{d} t \tag{7} \]

于是我们可以得到连续形式的平衡启发式(BH)为:

\[ w\left(t,X\right)=\frac{p\left(t\right)p\left(X \mid t\right)}{\int_{\mathcal{T}} p\left(t^\prime\right)p\left(X \mid t^\prime\right)\text{d} t^\prime} \tag{8} \]

然而,边缘 PDF \(\int_{\mathcal{T}} p\left(t^\prime\right)p\left(X \mid t^\prime\right)\text{d} t^\prime\) 通常没有闭式解。为此,随机多重重要性采样(Stochastic MISSMIS)使用有限个策略样本对其进行蒙特卡洛估计。具体来说,我们独立采样 \(n\) 个联合样本:

\[ t_i \sim p\left(t\right),\qquad X_i \sim p\left(X \mid t_i\right),\qquad i=1,\ldots,n \tag{9} \]

对于固定的 \(X\),边缘 PDF 可以写成关于 \(t\sim p\left(t\right)\) 的期望。因此,使用同一组策略样本 \(t_1,\ldots,t_n\),有:

\[ \begin{aligned} \int_{\mathcal{T}} p\left(t^\prime\right)p\left(X \mid t^\prime\right)\text{d} t^\prime &=\mathbb{E}_{t\sim p\left(t\right)}\left(p\left(X \mid t\right)\right)\\ &\approx\frac{1}{n}\sum^{n}_{j=1}p\left(X \mid t_j\right) \end{aligned} \tag{10} \]

这里的 \(\dfrac{1}{n}\) 来自蒙特卡洛样本平均;策略参数仍然按照 \(p\left(t\right)\) 采样。将上述边缘 PDF 的估计代入连续 BH,可以得到连续权重密度的随机近似:

\[ \widetilde{w}\left(t,X\right) =\frac{np\left(t\right)p\left(X \mid t\right)}{\sum^{n}_{j=1}p\left(X \mid t_j\right)} \tag{11} \]

需要注意的是,\(\widetilde{w}\left(t,X\right)\) 仍然表示连续策略空间上的权重密度,与离散 MIS 权重的定义不同。前面的 CMIS 公式是单样本估计量;对 \(n\) 个联合样本的估计量取平均,并使用同一组 \(t_j\) 估计每个 \(X_i\) 对应的边缘 PDF,可以得到:

\[ \begin{aligned} \hat{I}^{(n)}_{\mathrm{CMIS}} &=\frac{1}{n}\sum^{n}_{i=1} \frac{w\left(t_i,X_i\right)f\left(X_i\right)} {p\left(t_i\right)p\left(X_i \mid t_i\right)}\\ &\approx\frac{1}{n}\sum^{n}_{i=1} \frac{ \dfrac{np\left(t_i\right)p\left(X_i \mid t_i\right)} {\sum^{n}_{j=1}p\left(X_i \mid t_j\right)} f\left(X_i\right) } {p\left(t_i\right)p\left(X_i \mid t_i\right)}\\ &=\sum^{n}_{i=1} \frac{f\left(X_i\right)} {\sum^{n}_{j=1}p\left(X_i \mid t_j\right)} =\hat{I}_{\mathrm{SMIS}} \end{aligned} \tag{12} \]

给定采样得到的 \(t_1,\ldots,t_n\) 后,也可以将每个条件 PDF \(p\left(X \mid t_i\right)\) 视为一个离散采样策略;每个策略生成一个样本 \(X_i\)。此时对应的离散平衡启发式为:

\[ w_i\left(X\right) =\frac{p\left(X \mid t_i\right)} {\sum^{n}_{j=1}p\left(X \mid t_j\right)} \tag{13} \]

该权重满足 \(\sum^{n}_{i=1}w_i\left(X\right)=1\)。将其代入离散 MIS 估计量,同样可以得到上面的 SMIS 估计量。

论文背景

Veach 等人4通过在一个由所有可能的光传输路径构成的路径空间 \(\mathcal{P}\) 上的积分来定义每个像素 \(\rho\) 的光强 \(I_\rho\)

\[ I_\rho=\int_{\mathcal{P}}f_\rho\left(\bar{\text{x}}\right)\text{d} \bar{\text{x}}=\sum^{\infty}_{k=1}\int_{\mathcal{P}_k} f_\rho\left(\bar{\text{x}}\right)\text{d} \bar{\text{x}} \tag{14} \]

其中 \(\mathcal{P}_{k}\) 是所有由 \(k\) 个顶点组成的路径 \(\bar{\text{x}}_k=\left\{ \mathrm{x}_1, \mathrm{x}_2, ..., \mathrm{x}_k \right\}\) 的集合。其中 \(f_\rho\left(\bar{\text{x}}\right)\) 为路径 \(\bar{\text{x}}\) 的贡献,被定义为:

\[ f_\rho\left(\bar{\text{x}}\right)=W_\rho\left(\mathrm{x_1}, \mathrm{x_2}\right)\prod^{k-1}_{i=1}G\left(\mathrm{x}_i, \mathrm{x}_{i+1}\right)\prod^{k-1}_{i=2}f_r\left(\mathrm{x}_{i-1}, \mathrm{x}_i, \mathrm{x}_{i+1}\right)L_e\left(\mathrm{x}_{k-1},\mathrm{x}_k\right) \tag{15} \]

注:原文这里疑似存在笔误,原文中式为 \(...\prod^{k}_{i=1}G\left(\mathrm{x}_i,\mathrm{x}_{i+1}\right)...\),但经过笔者多次验证,确定此处应为 \(\prod^{k-1}_{i=1}\)

其中 \(W_\rho\) 是像素 \(\rho\) 的传感器响应函数,用于描述路径首段 \(\left(\mathrm{x}_1, \mathrm{x}_2\right)\) 对该像素测量值的贡献。它通常包括像素的成像映射、相机的光学响应因素等。\(G\left(\mathrm{x}, \mathrm{y}\right)\) 是几何项。\(f_r\left(\mathrm{x}, \mathrm{y}, \mathrm{z}\right)\) 是材质的双向散射分布函数(Bidirectional Scattering Distribution FunctionBSDF)。\(L_e\left(\mathrm{x}, \mathrm{y}\right)\) 是从 \(\mathrm{y}\) \(\mathrm{x}\) 发射的光。

在通过公式 15 进行蒙特卡洛路径积分的时候,每个顶点 \(\mathrm{x}_i\) 通过一条边连接到下一个顶点 \(\mathrm{x}_{i+1}\),以构建一个完整的路径。

连续的路径
3:连续的路径

断开子路径

如前文所述,对于 SDS 等难以直接采样的光传输路径,直接构造完整且连续的路径通常效率较低。因此,相关方法允许在采样阶段生成并复用断开的子路径,再通过连接、合并或核函数近似构造完整路径,从而提高这类路径的采样效率。

从路径到线段

由上文可知,传统路径积分只描述完整且连通的路径,因此以往方法通常将断开的子路径转化为连通路径,并消去其中的额外顶点。而该论文提出直接使用线段(segment)把断开的子路径纳入路径积分。因此不必强行将其转换成顶点连续的路径。这使得线段能成为独立的采样单元,并基于此设计新的采样与估计框架。在该论文中,线段由两个顶点定义 \(\bar{\text{s}}=\left(\mathrm{x}, \mathrm{y}\right)\)

基于线段的路径积分

原文提出的基于线段的路径积分如下:

\[ J_\rho=\int_{\mathcal{S}} g_\rho\left(\bar{\text{s}}\right)\text{d} \bar{\text{s}}=\sum^{\infty}_{k=1}\int_{\mathcal{S}_k}g_\rho\left(\bar{\text{s}}\right)\text{d} \bar{\text{s}} \tag{16} \]

其中 \(\rho\) 是一个像素,\(\mathcal{S}_{k}=\left(\mathcal{M}\times\mathcal{M}\right)^k\) 表示在场景中由 \(k\) 个线段组成的线段集的空间,其中 \(\mathcal{M}\) 表示场景流形空间。\(g_\rho\left(\bar{\text{s}}\right)\) 是线段集合 \(\bar{\text{s}}\) 的贡献函数,定义为:

\[ g_\rho\left(\bar{\text{s}}\right)=W_\rho\left(\text{s}_1\right)\prod^{k}_{i=1}G\left(\text{s}_i\right)\prod^{k-1}_{i=1}K\left(\text{s}_i, \text{s}_{i+1}\right)f_r\left(\text{s}_i,\text{s}_{i+1}\right)L_e\left(\text{s}_k\right) \tag{17} \]

其中几何项的定义为 \(G\left(\text{s}_i\right)=\dfrac{\left|\text{n}_{\mathrm{x}_i}\cdot \vec{\text{s}_i}\right|\left|\text{n}_{\mathrm{y}_i}\cdot \vec{\text{s}_i}\right|}{\left|\text{x}_i-\text{y}_i\right|^2}V\left(\text{x}_i, \text{y}_i\right)\) 其中 \(\text{n}_{\mathrm{x}_i}\) 是位于 \(\text{x}_i\) 处的表面法线,\(\vec{\text{s}_i}\) 是从 \(\mathrm{x}_i\) 指向 \(\mathrm{y}_i\) 的方向。\(V\left(\mathrm{x}_i, \mathrm{y}_i\right)\) 是从 \(\mathrm{x}_i\) \(\mathrm{y}_i\) 的可见性指示函数。\(K\left(\mathrm{s}_i, \mathrm{s}_{i+1}\right)\) 是核函数(kernel function),用于对两个线段 \(\text{s}_{i}\)\(\text{s}_{i+1}\) 之间的软连接,会在后文展开介绍。\(f_r\left(\text{s}_i, \text{s}_{i+1}\right)\) 是一种用于两线段间的 BSDF

线段背景下的核函数

Hachisuka 等人3提出的核函数相比,该论文的核函数的操作对象是一对线段 \(\text{s}_i\) \(\text{s}_{i+1}\) 其允许核函数依赖 \(\text{s}_i\) \(\text{s}_{i+1}\) 的方向。

更准确地说,对于任意固定的线段 \(\text{s}_i\) 和端点 \(\mathrm{y}_{i+1}\),核函数都需要关于下一条线段的起点 \(\mathrm{x}_{i+1}\) 在场景流形 \(\mathcal{M}\) 上归一化:

\[ \int_{\mathcal{M}} K\left(\text{s}_i, \text{s}_{i+1}\right) \text{d} \text{x}_{i+1} = 1 \tag{18} \]

\(K\left(\text{s}_i,\text{s}_{i+1}\right)=\delta\left(\mathrm{x}_{i+1}-\mathrm{y}_i\right)\) 时,只有满足 \(\mathrm{x}_{i+1}=\mathrm{y}_i\) 的相邻线段具有非零贡献,此时线段路径便退化为传统的连通路径。

实际使用中可以选取均匀核。令 \(\mathcal{K}\left(\mathrm{y}_i\right)\) 表示场景流形上以 \(\mathrm{y}_i\) 为中心的有效区域,则

\[ K\left(\text{s}_i,\text{s}_{i+1}\right) =\dfrac{\mathbf{1}\left(\mathrm{x}_{i+1}\in\mathcal{K}\left(\mathrm{y}_i\right)\right)} {\int_{\mathcal{K}\left(\mathrm{y}_i\right)}\text{d} \mathrm{x}_{i+1}} \tag{19} \]

其中分母是有效区域 \(\mathcal{K}\left(\mathrm{y}_i\right)\) 在场景流形上的面积,指示函数则保证核函数在该区域之外取零。

线段背景下的 BSDF

在线段路径中,相邻线段 \(\text{s}_i=\left(\text{x}_i,\text{y}_i\right)\) \(\text{s}_{i+1}=\left(\text{x}_{i+1},\text{y}_{i+1}\right)\) 的端点不一定重合。为了在 \(\text{y}_i\) 处计算 BSDF,原文将后一条线段平移到 \(\text{y}_i\),在保持其方向 \(\text{y}_{i+1}-\text{x}_{i+1}\) 不变的同时构造一个虚拟的第三顶点:

\[ \begin{aligned} f_r\left(\text{s}_{i}, \text{s}_{i+1}\right) &=f_r\left(\text{x}_i,\text{y}_i,\text{y}_i+\left(\text{y}_{i+1}-\text{x}_{i+1}\right)\right)\\ &=f_r\left(\text{x}_i,\text{y}_i,\text{y}_{i+1}-\left(\text{x}_{i+1}-\text{y}_i\right)\right). \end{aligned} \tag{20} \]
在线段背景下的 BSDF 中发生的线段平移
4:在线段背景下的 BSDF 中发生的线段平移

\(\text{x}_{i+1}=\text{y}_i\) 时,虚拟顶点恰好等于 \(\text{y}_{i+1}\),上述定义便退化为传统连通路径中的 \(f_r\left(\text{x}_i,\text{y}_i,\text{y}_{i+1}\right)\)

递归形式积分

在有了核函数 \(K\left(\text{s}_i, \text{s}_{i+1}\right)\) BSDF \(f_r\left(\text{s}_i, \text{s}_{i+1}\right)\) 定义后,可以将路径积分写成递归形式:

\[ L\left(\text{s}\right) = L_e\left(\text{s}\right) + \int_{\mathcal{S}_1}K\left(\text{s}, \text{s}^\prime\right)f_r\left(\text{s}, \text{s}^\prime\right)G\left(\text{s}^\prime\right)L\left(\text{s}^\prime\right)\text{d} \text{s}^\prime \tag{21} \]

其中 \(L\left(\text{s}\right)\) 是沿线段 \(\text{s}\) 传输的辐射度,于是像素 \(\rho\) 的强度 \(J_\rho\) 可以通过下式计算:

\[ J_\rho = \int_{\mathcal{S}_1}W_\rho\left(\text{s}\right)G\left(\text{s}\right)L\left(\text{s}\right)\text{d} \text{s} \tag{22} \]

在以往的方法中,由于路径贡献中的各项并未全部统一表示为线段的函数,因此将路径积分重写为递归形式是不可能。而改写成迭代形式将成为论文后文介绍的传播式算法的基础。

线段背景下的蒙特卡洛估计

线段路径积分既可以通过采样一条完整的线段路径进行估计,也可以根据递归形式逐段采样。首先,设完整的线段路径 \(\bar{\text{s}}\) 由线段空间上的联合 PDF \(p_{\mathcal S}\left(\bar{\text{s}}\right)\) 生成,则 \(J_\rho\) 的单样本估计量为:

\[ \left\langle J_\rho \right\rangle=\frac{g_\rho\left(\bar{\text{s}}\right)}{p_{\mathcal S}\left(\bar{\text{s}}\right)} \tag{23} \]

其中 \(p_{\mathcal S}\left(\bar{\text{s}}\right)\) 描述生成路径中所有线段端点的联合概率密度。

另一方面,根据递归形式采样首条线段 \(\text{s}\sim p_{\mathcal S}\left(\text{s}\right)\),可以得到像素值的单样本估计量:

\[ \left\langle J_\rho \right\rangle=\frac{W_\rho\left(\text{s}\right)G\left(\text{s}\right)\left\langle L\left(\text{s}\right) \right\rangle}{p_{\mathcal S}\left(\text{s}\right)} \tag{24} \]

参考公式 21,给定当前线段 \(\text{s}\) 后,继续采样下一条线段 \(\text{s}^\prime\sim p_{\mathcal S}\left(\text{s}^\prime\mid\text{s}\right)\),便可以递归估计沿 \(\text{s}\) 传输的辐射度:

\[ \left\langle L\left(\text{s}\right) \right\rangle=L_e\left(\text{s}\right) + \frac{K\left(\text{s},\text{s}^\prime\right)f_r\left(\text{s}, \text{s}^\prime\right)G\left(\text{s}^\prime\right)\left\langle L\left(\text{s}^\prime\right) \right\rangle}{p_{\mathcal S}\left(\text{s}^\prime\mid\text{s}\right)} \tag{25} \]

将该递归过程展开后,便得到一条完整线段路径的贡献。

线段采样器与线段估计器

该论文将基于线段的渲染过程分为两个阶段:

  1. 线段采样:生成一组线段样本。
  2. 线段估计:利用已生成的线段样本估计光传输贡献。

下文将分别介绍不同的线段采样器与线段估计器,并讨论它们的组合方式。

采样器

在本节中将会介绍不同类型的采样器,其中部分采样器在重要性采样性质上表现较弱,因此被选择作为基线。

为避免混淆,以下记号分别表示不同参考测度下的 PDF\(p_\omega\) 表示关于立体角 \(\text{d}\omega\) 的方向 PDF\(p_A\) 表示关于场景表面积 \(\text{d} A\) PDF\(p_{\mathcal S}\) 表示关于线段空间 \(\mathcal S\) 的联合 PDF

均匀采样器

最简单的方法是在场景流形 \(\mathcal{M}\) 上独立且均匀地采样两个端点 \(\text{x}\) \(\text{y}\),并由它们组成线段 \(\text{s}=\left(\text{x},\text{y}\right)\)。由于两个端点相互独立,线段的联合 PDF 为:

\[ p_{\mathcal S}\left(\text{s}\right) =p_A\left(\text{x}\right)p_A\left(\text{y}\right) =\frac{1}{\left|\mathcal{M}\right|^2} \tag{26} \]
均匀线段采样器
5:均匀线段采样器

其中 \(\left|\mathcal{M}\right|\) 表示场景流形的总面积。该方法虽然简单,但其 PDF 与线段的光传输贡献无关,因此通常具有较低的采样效率。

光线追踪采样器

为了使采样 PDF 与几何项 \(G\left(\text{s}\right)\) 更加匹配,可以使用光线追踪生成线段。首先在场景流形上均匀采样起点 \(\text{x}\),再以表面法线 \(\text{n}_{\text{x}}\) 为中心进行余弦加权半球采样,得到单位方向 \(\vec{\text{s}}\),最后通过光线投射获得首个交点 \(\text{y}\)。将方向上的 PDF 转换为场景流形上的面积 PDF 后,有:

\[ \begin{aligned} p_{\mathcal S}\left(\text{s}\right) &=p_A\left(\text{x}\right)p_A\left(\text{y}\mid\text{x}\right)\\ &=\frac{1}{\left|\mathcal{M}\right|} \frac{\left|\text{n}_{\text{x}}\cdot\vec{\text{s}}\right| \left|\text{n}_{\text{y}}\cdot\vec{\text{s}}\right|} {\pi\left|\text{x}-\text{y}\right|^2} V\left(\text{x},\text{y}\right)\\ &=\frac{G\left(\text{s}\right)}{\pi\left|\mathcal{M}\right|}. \end{aligned} \tag{27} \]
光线追踪线段采样器
6:光线追踪线段采样器

由于光线投射只返回沿采样方向可见的首个交点,因此对于实际生成的线段有 \(V\left(\text{x},\text{y}\right)=1\);这里将其显式写出,是为了与前文几何项 \(G\left(\text{s}\right)\) 的定义保持一致。

这里补充对于 \(p_A\left(\text{y}\mid \text{x}\right)=\dfrac{G\left(\text{s}\right)}{\pi}\) 的推导。有需要的读者可以参考一下。

首先考虑余弦半球分布 \(p_\omega\left(\vec{\text{s}}\right)=\dfrac{\left|\text{n}_x\cdot\vec{\text{s}}\right|}{\pi}\),而余弦半球分布是角域内的分布,但 \(p_A\left(\text{y}\mid \text{x}\right)\) 是关于场景表面积的 PDF(这是由线段空间的定义 \(\mathcal{S}=\mathcal{M}\times\mathcal{M}\) 所决定的),因此由守恒关系可得:

\[p_A\left(\text{y}\mid \text{x}\right)\text{d} A=p_\omega\left(\vec{\text{s}}\right)\text{d} \omega\]

又由 \(\text{d} \omega=\dfrac{\left|\vec{\text{n}}_y\cdot\vec{\text{s}}\right|}{\left|\text{x}-\text{y}\right|^2}\text{d}A\),代入上式即可得到 \(p_A\left(\text{y}\mid \text{x}\right)=\dfrac{G\left(\text{s}\right)}{\pi}\)

进一步地,还可以将 BSDF \(f_r\left(\text{s}, \text{s}^\prime\right)\) 纳入重要性采样。首先在场景流形上采样起点 \(\mathrm{x}\),再采样辅助入射方向 \(\vec{\text{s}}^\prime\);给定 \(\mathrm{x}\) \(\vec{\text{s}}^\prime\) 后,根据 BSDF 诱导的方向采样 PDF 采样出射方向 \(\vec{\text{s}}\),并通过光线追踪得到第二个顶点 \(\mathrm{y}\)

\[ p_{\mathcal S}\left(\text{s}\mid \vec{\text{s}}^\prime\right) =p_A\left(\mathrm{x}\right)p_A\left(\text{y}\mid \text{x}, \vec{\text{s}}^\prime\right) =\frac{1}{\left|\mathcal{M}\right|} \frac{p_\omega\left(\vec{\text{s}}\mid \text{x},\vec{\text{s}}^\prime\right) \left|\text{n}_{y}\cdot\vec{\text{s}}\right|} {\left|\mathrm{x}-\mathrm{y}\right|^2} \tag{28} \]
BSDF 重要性采样线段
7BSDF 重要性采样线段

其中 \(p_\omega\left(\vec{\text{s}}\mid \text{x}, \vec{\text{s}}^\prime\right)\) 是方向空间中的条件 PDF。由于 \(p_{\mathcal S}\) 需要以表面积为参考测度,根据上文的变量变换,仍需乘以雅可比因子 \(\dfrac{\left|\vec{\text{n}}_y\cdot\vec{\text{s}}\right|}{\left|\text{x}-\text{y}\right|^2}\)。这类采样器的局限在于,各条线段仍然主要被分别采样,未能充分利用它们之间的几何关联,因此整体采样效率受到限制。

逐段采样器

如前文所述,独立采样线段难以有效地对贡献函数中通常成对出现的项进行重要性采样。因此,逐段采样器(sequential segment sampler)沿路径顺序依次生成一组线段,并逐项考虑贡献函数 \(g\left(\bar{\text{s}}\right)\) 中的各个因素。

在线段序列采样过程中,第一条线段可以从传感器端或光源端开始采样。若从传感器端开始,则根据传感器响应项构造采样 PDF

\[ p_W\left(\text{s}_1\right)\propto W_\rho\left(\text{s}_1\right)G\left(\text{s}_1\right). \tag{29} \]

若从光源端开始,则根据自发光项构造采样 PDF

\[ p_L\left(\text{s}_1\right)\propto L_e\left(\text{s}_1\right)G\left(\text{s}_1\right). \tag{30} \]

其中 \(p_W\) \(p_L\) 都是定义在线段空间 \(\mathcal S\) 上的 PDF\(p_K\) 则是对线段起点在场景流形上进行采样的表面积 PDF。符号 \(\propto\) 表示按照对应的贡献项归一化;未归一化的贡献项本身不构成 PDF

接下来,每个子序列线段 \(\text{s}_{i+1}\) 都可以在以 \(\text{s}_i\) 为条件的情况下采样:

\[ \begin{aligned} p_{\mathcal S}\left(\text{s}_{i+1}\mid\text{s}_i\right) &=p_K\left(\text{x}_{i+1}\mid\text{s}_i\right) p_A\left(\text{y}_{i+1}\mid\text{x}_{i+1},\text{s}_i\right) \\ &=p_K\left(\text{x}_{i+1}\mid\text{s}_i\right) \frac{ p_\omega\left(\vec{\text{s}}_{i+1}\mid\text{x}_{i+1},\text{s}_i\right) \left|\text{n}_{\text{y}_{i+1}}\cdot\vec{\text{s}}_{i+1}\right| }{ \left|\text{x}_{i+1}-\text{y}_{i+1}\right|^2 }. \end{aligned} \tag{31} \]
逐段线段采样器
8:逐段线段采样器

其中 \(p_K\left(\text{x}_{i+1}\mid \text{s}_i\right)\) 按照核函数 \(K\left(\text{s}_i,\text{s}_{i+1}\right)\) 归一化,用于采样 \(\text{x}_{i+1}\)。得到 \(\text{x}_{i+1}\) 后,再根据 BSDF 诱导的方向 PDF 采样下一条线段的方向:

\[ p_\omega\left(\vec{\text{s}}_{i+1}\mid\text{x}_{i+1},\text{s}_i\right) \propto f_r\left(\text{s}_i,\text{s}_{i+1}\right). \tag{32} \]

类似 Hachisuka 等人于 2012 年提出的 UPS 算法3,论文还考虑了一种近似实现:直接令 \(\text{x}_{i+1}=\text{y}_i\)。这样相邻线段的端点重合,实际采样结果便退化为连通的线段序列。该近似是为了避免在一般场景流形上在 \(\mathcal{K}\left(\text{y}_i\right)\) 内额外实现区域采样和归一化,并复用已有的顺序顶点采样流程。

在这种近似下,\(\text{x}_{i+1}\) 的实际条件采样分布可表示为场景流形上的 Dirac-\(\delta\)

\[ p_{\mathrm{dup}}\left(\text{x}_{i+1}\mid\text{s}_i\right) =\delta_{\mathcal{M}}\left(\text{x}_{i+1}-\text{y}_i\right). \tag{33} \]

线段桥接

除了以上的采样方法,论文还在补充资料中提及了有关桥接线段(bridge segment)的内容。其主要作用是在两条线段之间生成一条桥接线段以链接两条光路。类似 BDPT 中的光路链接。

假设相机光路的末端是 \(\text{s}_{i-1}=\left(\alpha_{i-1}, \beta_{i-1}\right)\),光源光路的末端是 \(\text{s}_{i+1}=\left(\alpha_{i+1}, \beta_{i+1}\right)\)。如果按照相机\(\rightarrow\)光源的方向,算法会试图生成一条线段 \(\text{s}_{i}=\left(\alpha_i, \beta_i\right)\) 使得 \(\alpha_i\in\mathcal{K}\left(\beta_{i-1}\right)\)\(\beta_i\in\mathcal{K}\left(\alpha_{i+1}\right)\)。即

\[ p_{\mathcal{S}}\left(\text{s}_i \mid \text{s}_{i-1}, \text{s}_{i+1}\right)=p_{K}\left(\alpha_i\mid \beta_{i-1}\right)p_{K}\left(\beta_i\mid \alpha_{i+1}\right) \tag{34} \]

随后对于生成的线段 \(\text{s}_i\),使用光线追踪计算可见性 \(V\left(\alpha_i, \beta_i\right)\),若 \(V\left(\alpha_i, \beta_i\right)=0\) 则该光路贡献为 \(0\);否则计算贡献,完成线段桥接。

桥接线段采样
9:桥接线段采样

估计器

在讨论线段采样器之后,接下来考察如何复用已采样的线段构造估计器。与顶点不同,线段并不绑定于特定的采样方向或路径位置,因此同一组线段可以通过多种方式组合成完整的线段路径。

基于顺序采样的估计器

一种最简单的估计策略是,先按照采样顺序得到由 \(k\) 条线段组成的线段路径 \(\bar{\text{s}}=\left(\text{s}_1,\ldots,\text{s}_k\right)\),再使用蒙特卡洛估计器估计该路径对像素积分 \(J_{\rho k}\) 的贡献:

\[ \left\langle J_{\rho k} \right\rangle =\frac{g_\rho\left(\bar{\text{s}}\right)}{p_{\mathcal S}\left(\bar{\text{s}}\right)}, \qquad p_{\mathcal S}\left(\bar{\text{s}}\right) =p_{\mathcal S}\left(\text{s}_1,\ldots,\text{s}_k\right). \tag{35} \]
顺序估计器
10:顺序估计器

其中 \(p_{\mathcal S}\left(\bar{\text{s}}\right)\) 是生成这 \(k\) 条线段的联合 PDF

采样过程中还可能出现不属于线段路径的辅助变量,例如根据入射方向进行 BSDF 条件采样时使用的入射方向。这些变量虽然不会被记录为路径中的线段或端点,但会作为条件采样技术的参数,影响后续线段的采样 PDF

基于多技术组合的估计器

BDPT 算法启发,可以复用已采样线段的不同子序列,通过不同的选取和连接方式构造新的线段路径。每一种完整线段路径的构造方式都定义了一种线段路径采样技术;这些技术还可以进一步通过 MIS 进行组合4。这里的线段路径采样技术表示高层的路径构造策略,与前文介绍的底层线段采样器相区分。对于固定的 \(k\),考虑 \(T\) 个线段路径采样技术;第 \(i\) 个技术的联合 PDF \(p_i\left(\bar{\text{s}}\right)\),并生成 \(n_i\) 条线段路径样本 \(\bar{\text{s}}_{i,j}\),其中 \(j=1,\ldots,n_i\)。不同技术可能复用相同或相关的线段子序列:

对应的 MIS 估计器为:

\[ \left\langle J_{\rho k}^{\mathrm{MIS}} \right\rangle =\sum_{i=1}^{T}\sum_{j=1}^{n_i} \frac{ w_i\left(\bar{\text{s}}_{i,j}\right)\,g_\rho\left(\bar{\text{s}}_{i,j}\right) }{ n_i\,p_i\left(\bar{\text{s}}_{i,j}\right) }. \tag{36} \]

其中权重对任意给定的线段路径都满足

\[ \sum_{i=1}^{T}w_i\left(\bar{\text{s}}\right)=1. \tag{37} \]

对于相同的线段采样成本,采用多重采样技术可以构建更多线段路径样本。在线段采样成本不变的情况下,线段路径样本数量增加了。

多技术 MIS 估计器
11:多技术 MIS 估计器

但这些样本依然是有限种预先定义的路径组合。为了进一步复用同一批线段,后文将会引入递归估计器(recursive estimator),进一步提高线段复用率。

基于递归的估计器

另一种构造线段路径的方法是利用递归形式,从一个已知对像素有贡献的线段出发,例如连接到相机的线段。随后,在每次递归扩展中,根据递归项中核函数的非零支撑区域 \(\mathcal{K}\left(\text{y}_i\right)\),从已采样的候选线段中选择后继线段。不同的后继线段可以来自不同的线段采样技术,例如以不同前置线段为条件的逐段采样。

递归估计器
12:递归估计器

然而,不同采样技术可能生成可用于同一路径构造的相同或相关线段样本。为了在复用这些样本的同时正确合并各技术的概率贡献,West 等人引入了边缘化多重重要性采样(Marginal Multiple Importance SamplingMMIS)。MMIS 同时支持无条件采样技术,以及先采样辅助随机变量 \(\text{t}\)、再据此采样线段的条件采样技术。

基于多技术组合的估计器
13:基于多技术组合的估计器

设第 \(i\) 个技术的辅助变量属于技术空间 \(\mathcal{T}_i\),并以条件 PDF \(p_i\left(\text{s}^\prime\mid\text{t}\right)\) 生成后继线段。将递归积分中的后继线段空间按这些技术空间划分,并令权重满足

\[ \sum_{i=1}^{T}\int_{\mathcal{T}_i}w_i\left(\text{t},\text{s}^\prime\right)\text{d} \text{t}=1, \tag{38} \]

则递归项可以改写为对所有技术空间的积分之和。对每个技术空间使用 \(n_i\) 个样本进行蒙特卡洛估计,可得含有条件 PDF 的多重采样估计器。其平衡启发式权重的分母包含所有技术及辅助变量的边缘 PDF;由于该积分通常难以直接计算,MMIS 使用同一批辅助变量样本对其进行蒙特卡洛近似,从而得到下面的可计算形式。

应用 MMIS 后,可以将这些条件和无条件采样技术统一到递归估计器中,得到:

\[ \left\langle L\left(\text{s}\right) \right\rangle_{\text{BH}} = L_e\left(\text{s}\right) + \sum^{T}_{i=1}\sum^{n_i}_{j=1} \frac{ K\left(\text{s}, \text{s}^\prime_{i, j}\right) f_r\left(\text{s}, \text{s}^\prime_{i, j}\right) G\left(\text{s}^\prime_{i, j}\right) \left\langle L\left(\text{s}^\prime_{i ,j}\right) \right\rangle_{\text{BH}} } { \sum^{T}_{i^\prime=1}\sum^{n_{i^\prime}}_{j^\prime=1} p_{i^\prime}\left(\text{s}_{i, j}\mid \text{t}_{i^\prime, j^\prime}\right) } \tag{39} \]

相应的像素估计器可写为:

\[ \left\langle J_\rho \right\rangle_{\mathrm{BH}} = \sum_{i=1}^{T}\sum_{j=1}^{n_i} \frac{ W_\rho\left(\text{s}_{i,j}\right) G\left(\text{s}_{i,j}\right) \left\langle L\left(\text{s}_{i,j}\right) \right\rangle_{\mathrm{BH}} }{ \displaystyle \sum_{i^\prime=1}^{T}\sum_{j^\prime=1}^{n_{i^\prime}} p_{i^\prime}\left(\text{s}_{i,j}\mid \text{t}_{i^\prime,j^\prime}\right) }. \tag{40} \]

在实际计算中,虽然可以从相机出发,随着递归层数增加逐层向外展开上述嵌套估计器,但每次递归都需要考虑所有可能的后继线段,导致计算复杂度随线段数量呈指数增长,实际上难以处理。类似多顶点路径滤波中的传播式实现,论文补充材料采用基于迭代传播的算法高效计算递归 MMIS 估计器,将指数级的递归展开转化为可复用的迭代传播过程,从而显著降低实际计算成本。

边缘化线段路径采样

部分线段路径采样技术的组合不适合递归 MMIS 估计器。对于这类情况,可以直接对完整线段路径应用 MMIS。设第 \(i\) 个技术生成 \(n_i\) 条线段路径样本 \(\bar{\text{s}}_{i,j}\)

将完整线段路径空间按技术空间划分,并令各技术空间上的权重满足归一化条件,可以将路径积分写成:

\[ J_{\rho k} = \sum_{i=1}^{T} \int_{\mathcal{S}_k}\int_{\mathcal{T}_i} w_i\left(\text{t},\bar{\text{s}}\right) g_\rho\left(\bar{\text{s}}\right) \text{d}\text{t}\,\text{d}\bar{\text{s}}. \tag{41} \]

对每个技术空间使用 \(n_i\) 个样本,并将平衡启发式权重中的边缘 PDF 用所有技术样本的条件 PDF 之和近似,即可得到下面的 MMIS 估计器:

\[ \left\langle J_{\rho k} \right\rangle_{\mathrm{BH}} = \sum_{i=1}^{T}\sum_{j=1}^{n_i} \frac{ g_\rho\left(\bar{\text{s}}_{i,j}\right) }{ \displaystyle \sum_{i^\prime=1}^{T}\sum_{j^\prime=1}^{n_{i^\prime}} p_{i^\prime}\left(\bar{\text{s}}_{i,j}\mid \text{t}_{i^\prime,j^\prime}\right) }. \tag{42} \]

这里采用近似的平衡启发式权重;完整推导见补充材料。与 West 等人提出的边缘化路径采样框架类似,该估计器为实现不同的线段光传输算法提供了一个灵活的通用框架。

总结

本论文提出了一种基于线段的通用光传输模拟框架,将传统路径积分中以顶点序列为基本对象的表示推广到线段路径。通过允许相邻线段的端点彼此断开,该框架可以在统一的积分形式下描述光子密度估计、路径滤波以及路径连接等依赖断开子路径的渲染方法。

围绕线段这一基本表示,论文分别定义了线段空间、线段贡献函数、核函数和线段背景下的 BSDF,并进一步给出了均匀采样、光线追踪采样、BSDF 重要性采样、逐段采样以及桥接线段等采样方式。在估计方面,论文利用多重重要性采样和边缘化多重重要性采样复用不同采样技术生成的线段,并通过递归估计器构造更多线段路径组合。针对递归估计器可能产生的指数级计算量,论文还采用聚类和迭代传播来共享中间结果。

总体而言,这项工作的主要价值在于提供了一个更一般的路径空间表述,并将若干已有的采样与估计思想放入同一框架下进行分析和组合。这样的统一视角有助于梳理不同方法之间的联系,贡献集中体现在表述方式和理论组织上,渲染机制本身延续了许多已有思路。与此同时,核函数带来的近似偏差、场景流形上的区域采样、端点聚类误差以及 MMIS 权重计算仍然是实际实现中的重要问题,也是后续研究可以继续改进的方向。


  1. Wang, W., West, R., & Hachisuka, T. (2025). Segment-based Light Transport Simulation. ACM Transactions on Graphics, 44(4), Article 73, 1-10. https://doi.org/10.1145/3730847 

  2. Georgiev, I., Křivánek, J., Davidovič, T., & Slusallek, P. (2012). Light Transport Simulation with Vertex Connection and Merging. ACM Transactions on Graphics, 31(6), Article 192, 1-10. https://doi.org/10.1145/2366145.2366211 

  3. Hachisuka, T., Pantaleoni, J., & Jensen, H. W. (2012). A Path Space Extension for Robust Light Transport Simulation. ACM Transactions on Graphics, 31(6), Article 191, 1-10. https://doi.org/10.1145/2366145.2366210 

  4. Veach, E. (1997). Robust Monte Carlo Methods for Light Transport Simulation. Ph.D. Thesis, Stanford University, United States - California. https://graphics.stanford.edu/papers/veach_thesis/ 

  5. West, R., Georgiev, I., Gruson, A., & Hachisuka, T. (2020). Continuous Multiple Importance Sampling. ACM Transactions on Graphics, 39(4), Article 136, 1-12. https://doi.org/10.1145/3386569.3392436 

  6. West, R., Georgiev, I., & Hachisuka, T. (2022). Marginal Multiple Importance Sampling. SIGGRAPH Asia 2022 Conference Papers, Article 42, 1-8. https://doi.org/10.1145/3550469.3555388