Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs

翻译Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs

对任意层的BSDFs的位置无关蒙特卡罗模拟

现实世界中的材质通常是分层的,例如金属涂层,生物组织和许多其他的材料。在层的交界面和体散射的的特性的变化会导致从各向异性高光到复杂纹理和浮雕图案的材质外观的多样性。然而,模拟光和层的相互作用是一个有挑战性的问题。过去的解析或者数值方法要不会引入一些近似值,要不就会依赖一些对离散化BSDF的代价昂贵的操作。影响了在空间上自由改变层的属性的能力。我们引入了一个新的基于蒙特卡洛模拟的无偏层BSDF模型,它唯一的假设就是层本身的假设。我们全新的位置无关路径公式在构建光线传播路径时比应用于平面层特例的通用的光线传播算法更加强大,因为它基于立体角的乘积而不是面积测量,所以它不含在标准公式中所需的高方差几何项。我们介绍两种对位置无关路径积分的采样方法,一种是具有下一事件的正向路径追踪估计和一个全双向的估计。我们展示了许多样例,包括具有表面和提及散射的多层模型,表面和相位各向异性和在所有参数上的空间变化。

简介

基于物理的光照模型最近几年已经在许多环境、建筑和工业设计的绘制软件上变得成熟和常见了。然而,我们看到在材料的反射和散射领域还在不断取得进步,为了实现更高的物理真实性同时实现更加有效的材质内容创建。

许多现实世界中的材料是由各种不同成分的薄层组成的。例如,金属漆是一个覆盖于由随机取向的铝片组成的金属基质的电解质涂层;电解质的吸收和散射的特点给予了金属颜色,同时也改变了它的方向散射属性。这种界面和体散射属性的不同的特点可以产生很多材质外观,从各向异性高光到复杂纹理。而且,在层交界面上的详细的层厚度变化,划痕和凹凸给予了材质额外的丰富性。正确理解和模拟这些相互作用,因此是进一步提升材质绘制的关键。

然而,通过建模这些层的所有几何属性,显式模拟光和层的相互作用,代价十分昂贵而且非常繁琐。交界面和内部微几何的复杂和空间变化用传统的3D藏奸建模工具例如:三角网格和体积网格难以描述和模拟。

一些技术发展出来用于处理这个问题,Weidlich和Wilkie构造了一个简单灵活的解析模型。然而,近似还是非常必要的,传输中的界面粗糙度没有完全处理,同时不支持体散射。Belcour最近的工作介绍了一个更加高级的方法基于跟踪BSDF的lobe的低阶矩;然而,他也引入了一些近似值和限制。另一方面,Jakob介绍了一种方法十分准确但是代价昂贵,他用离散数据集表示BSDF同时依赖在傅立叶域上的昂贵操作来实现层的组合和厚度调整。这使得层的属性在空间上自由变化过于昂贵:这是一个在实践中的明显缺陷。

在这篇论文中,我们介绍了一个新的分层BSDF模型,么有上述的限制。我们的模型提过一个准确的、无偏的结果,据我所知,这是唯一的这种模型。不像之前的工作,我们不想试图推导出一个对BSDF的Lobe形状的解析的模型。相反,在评估和采样分层的BSDF路径中,我们在平的板内运行蒙特卡洛光线传播。这不需要预计算,因此可以高效处理空间变化外观。它也支持全方位对层的特性进行编辑,即对交界面又对体同时允许交界面BSDF和相位函数的各向异性。事实上,我们的模型的唯一的驾驶就是层的假设本身。

我们的解决方法在构建管线传播路径不一般的传播算法在根本上更加高效。我们介绍了一个修改后的路径积分框架用于在平板内的光线传播,优于此设置中的标准路径公式。因为它基于立体角的积而不是面积测量,它不含标准算法需要的高方差几何项。在这个公式中我们介绍了两个模拟技术,首先是通过层边界和MIS的带有下一事件的正向光线追踪的估计,其次是一个全双向估计。我们展示了这个方法的能力通过一系列的例子,包括具有表面和体积散射的多层。我们的例子展示了所有参数的空间变化:表面BSDF、体和相位函数参数,层厚度和表面法向量。

相关工作

离散层BSDFs

先前,一些列的BSDF模型被提出,用来描述在交界面和次表面上有各种各样假设的层。

Hanrahan和Krueger的一个早期的解析模型已经支持多层模型,但是只有单一散射,并且不支持在交界面上的任意BSDF。他们还建议通过蒙特卡洛模拟增加多层散射,但是他们的模拟方法只考虑了体散射事件(而不是体和粗糙界面事件组合)。而且,他在出射方向上使用分层,而不是对一个给定出射方向的高效的BSDF评估方法,这个在我们的方法中提供了。

一个由Stam提出的方法用来把皮肤作为分层材质绘制,由包含一个体积散射的板的粗糙的电介质交界面组成。这个方法基于将BSDF离散到一组方向基中,在其中光线传播的问题被解决。有Jakob等人提出的模型可以看作是Stam的离散方法的一个巨大该静,在傅立叶域中操作。他处理任意层的堆,支持在薄层中利用adding-double的方法计算次表面散射,同时支持微面粗糙交界。Zeltner的工作将这个方法扩展到了各向异性表面散射。一旦离散BSDF被构建,这个方法的精度就很高同时很绘制效率也很高。然而,离散基的BSDF的构建代交高昂,他们时候齐次BSDF上。少部分的BSDF在空间上可以混合不同权重,相比于我们对参数支持任意空间纹理,这也是一个严重的限制。

解析层BSDFs

Weidlich和Wilkie提出的模型使用了不同的方法。他关注没有次表面散射的层,通过解析上将交界面的微面BSDFs合成单一一个可能是多Lobe的,类似微表面的BSDF。在这个方法里有明显的近似,仔细选择能让在单一的BSDF查找中不需要积分。这使得模型很快很灵活。另一个最近的模型使用引入额外的正态分布函数来在查询时避免使用蒙特卡洛积分,类似于微表面NDF但是捕捉多次反射或者散射事件。在许多最近的工作中,Belcour介绍了一个新的方法基于跟踪BSDFs的lobes的低阶矩。这是一个十分快速而且实用的方法,但是依然引入了一些近似和限制(例如没有面和体的各向异性)。相反,我们的模型以一些额外计算和方差的代价,提供了一个无偏的准确而且更灵活的方法。一些早先的技术建模光线在层次模型例如人的皮肤的散射。但是,他们都关注在BSSRDF中侧向光的传播,而且和我们关注BSDF的方向属性正交。

交界面的微表面模型

基于微表面理论的BSDF模型经常用在计算机图形学中用来捕捉光线和带粗糙微结构的反光表面相互作用时的反射和折射。Walter等人的模型将Cook和Torrance的微表面模型拓展到了处理光线反射和对粗糙电介质表面的透过率,被认为是基于物理绘制的标准。我们使用这个模型来描述我们的层交界面。

由Heitz等人最近建立的微表面模型能够捕捉面之间的相互反射,并且更好地保持能量。Schussler提出了一个常见于法向量贴图技术中的由着色和几何法向量错误配对造成的能量损失的解决方案。这些模型(或者未来的改进后的微表面模型)能够和我们的方法进行结合。

能力比较

我们比较了我们的方法和最近一些工作的能力。我们考量了我们方法支持的三个特点:表面各向异性,空间变化和体介质各向异性。只有其中在被比较的系统中被支持:Belcour的系统支持空间变化,Zeltner的系统支持表面各向异性。

背景知识和概述

在本节内容中,我们显式声明了我们方法的假设,提供了光线传播的标准路径公式的背景知识,同时提供了论文剩余部分的一个快速概述。

假设

尽管光线一般在不同的位置进入和离开表面,我们注意到,当层很薄并且光线相对来说很远时,进入和离开的位置会变得足够近。我们假设能够忽略这些便宜,令我们能够使用BSDFs来描述层内的光线传播而不是用BSSRDFs。

进一步,我们假设层的空间变化特点足够慢,以致于在一个表面上的点的BSDF测量可以在局部近似当作空间上一致的。这个和上面水平方向光线的传播可以小到忽略不计是相关的。

事实上,这些就是我们方法仅有的假设,因此提供了在无偏准确性并且在设置层的属性和空间变化时的完全灵活性。

Veach的路径积分回顾

在Veach的光线传播公式中,光路北定义成一组被线段连起来的顶点。光线传播的积分值被写成:

I=Ωf(x)dμ(x)I = \int_{\Omega}f(\overline{x})d\mu(\overline{x})

其中x=(x0,...,xk)\overline{x}=(x_0,...,x_k)是一个在表面上或者场景中参与的材质内的有kk段,k+1k+1个顶点的路径。Ω\Omega是所有路径的空间,被定义为k0k\ge0的集合Ωk\Omega_k的并集,其中Ωk\Omega_k表示长度为kk的路径的集合。进一步,f(x)f(\overline{x})是对积分的路径贡献,并且μ(x)\mu(\overline{x})是在路径空间上的特殊测量, 定义为顶点xix_i上面积的乘积。贡献f(x)f(\overline{x})是顶点项(正常BSDFs和相位函数)和对应路线段的几何项的乘积。几何项在分母中包含了两个顶点的平方距离,这一个当试图在薄层配置上连接独立采样顶点时的方差的明显来源。

论文概述

在第四节,我们描述了我们的层光线传播的路径公式。我们的路径积分区别于Veach的公式在于它是位置无关的。关键的想法在于,在一个无限的平板上,顶点的水平位置是无关的:只有顶点的垂直位置(深度)和顶点之间的方向是和光线传播的积分相关的。在层内,顶点由他们的深度决定,而不是完全的3D位置,同时线段由可变的单位方向。

一个很重要的需要注意到的点是我们的位置无关公式不只是针对标准方程对平板设置的一个简化,事实上一个它是一个新的方法,相对于标准公式能够达到更好的方差。新的公式的关键的好处在于它不包含需要两个有完全位置信息的顶点的平方距离的逆的衰减项。即使在高级的估算器例如双向传播或者Metropolis传播中也会导致高方差,事实上他们在这个设置上比单向的表现更差。 相反,我们的方法基于下一事件评估的单向采样是一个更有效的评估器,甚至是一个更有效的双向评估器。单向估计器在更简单的情况下表现相似(尽管通常不太好),但是在一些有挑战性的带有尖锐或各向异性BSDFs和相位函数的情况下,双向的版本明显更有效。图像4通过BSDF的lobe的可视化显示了估计器的性能,同时显示和Ground truth更匹配。

第五节,我们仔细描述了两个估计器的细节,同时聚焦在两个对将BSDF整合成一个实用的渲染器的关键的额外操作:重要性采样和pdf测量。

最后,我们在第六节展示结果,在第七节进行了总结。

位置无关路径方程:定义和推导

在这节中,我们在理论上用一个给定的层的栈对给定的查询角度ωi\omega_iωo\omega_o义了一层BSDF的值作为路径的积分。给定了这样一个定义,任何蒙特卡洛方法可以通过随意采样路径用于计算BSDF,通过计算他们的贡献并且除以相应的概率密度值。

符号

我们使用符号cosω\cos{\omega}来定义单位向量ω\omegazz分量。我们同时也用I(x)\mathbb{I}(x)作为一个指示函数,如果布尔条件为真,返回1,如果为假返回0。一个大写字体被用于表示在S2S^2空间上的单位向量。参考这节的符号使用表1

位置无关路径积分

为了建立这个理论,我们首先假设一个上交界面带有BSDFff_\uparrow,下交界面带有BSDFff_\downarrow的无限的平板,和一个板内的均匀散射体组合来产生一个最终的层BSDF。体介质由一个相位函数定义fpf_p,一个散射系数σs\sigma_s以及一个消光系数σt\sigma_t;我们将使用符号fp^=σsfp\hat{f_p}=\sigma_sf_p

为了简化,我们降低深度对体的参数的依赖(尽管他们可以变化)并且我们假设固定的散射和消光系数,尽管他们可以根据我们支持的各向异性相位方程的方向变化。我们进一步假设平板有均匀的厚度,方程可以被轻易地调整成任意厚度的。

一个顶点zi[0,1]z_i\in[0,1]是一个单一的实数,表示层内的厚度。一个0或者1的值表示在底部交界面或者顶部交界面的相应的一个表面反射或者折射事件。分数值表示在特定深度的体散射事件。需要注意,在无限的平面交界面上的顶点的水平位置是不需要的。

一个方向did_i是一个在s2s^2空间上的一个单位向量,表示光线在顶点之间传播的方向。在我们的惯例(从Veach中继承)中,在矢量指向光线传播的方向(也就是说从光源到摄像机),同时顶点和方向的索引也跟随这个顺序。

一个光路是一系列的方向和顶点x=(d0,z1,d1,...,zk,dk)\overline{x}=(d_0,z_1,d_1,...,z_k,d_k)。第一个和最后一个方向和层的BSDF查询中的入射和出射方向对齐,也就是说,d0=ωid_0=-\omega_i同时dk=ωod_k=\omega_o。不同于Veach的公式,路径在顶点之间交错,并且两个光路的终止点由方向(而不是顶点)决定,图6展示了一些例子。

一个光路的路径贡献f(x)f(\overline{x})是(在每一个顶点上的)顶点项viv_i和(在所有内部线段上的)线段项sis_i的乘积:

f(x)=v1s1v2s2...sk1vkf(\overline{x})=v_1s_1v_2s_2...s_{k-1}v_k

顶点项包含了BSDF或者相位函数的值:

vi=v(zi,di1,di)={f(di1,di),if zi=0,f(di1,di),if zi=1,fp^(di1,di),if 0<zi<1 v_i=v(z_i,-d_{i-1},d_i)= \begin{cases} f_\uparrow{}(-d_{i-1},d_i), & \text{if } z_i=0, \\ f_\downarrow{}(-d_{i-1},d_i), & \text{if } z_i=1, \\ \hat{f_p}(-d_{i-1},d_i), & \text{if } 0<z_i<1 \end{cases}

定义转移项τ(z1,z2,ω)\tau(z_1,z_2,\omega)如下:

τ(z,z,ω):=exp(σtzzcosω)I(zzcosω>0) \tau(z,z',\omega):=\exp(\frac{-\sigma_t|z'-z|}{\cos\omega})\cdot \mathbb{I}(\frac{z'-z}{\cos \omega}>0)

指数项的目的是去计算由方向ω\omega从深度zzzz'的透过率。指示函数检查了配置的有效性(也就是说如果方向向上,那么zz'应该大于zz,反之亦然)。对于内部线段的线段项现在可以被如下定义:

si=s(zi,zi+1,di):=τ(zi,zz+1,di)cosdiαi s_i=s(z_i,z_{i+1},d_i):=\tau(z_i,z_{z+1},d_i)\cdot |\cos{d_i}|^{\alpha_i}

其中

αi=I(zi{0,1})+I(zi+1{0,1})1 \alpha_i=\mathbb{I}(z_i\in\{0,1\})+\mathbb{I}(z_{i+1}\in\{0,1\})-1

这个定义封装了沿着路径段余弦项的微妙行为。更加详细的推到,请参考附录A。

路径空间Ω(ωi,ωo)\Omega(\omega_i,\omega_o)是有一个或者多个顶点的所有路径的集合,这样的路径的第一个方向等于ωi-\omega_i并且最后一个等于ωo\omega_o。它可以被看作是所有长度k1k \ge 1的路径的空间的集合,也就是说Ω=k1Ωk\Omega=\cup_{k\ge1}\Omega_k

路径空间测度μ(x)\mu(\overline{x})是路径内部方向上的立体角的测量值σ\sigma的乘积,乘以在体散射顶点上的线的测量值λ\lambda。也就是说,对于一个顶点路径,

μ(x)=i=1k1σ(di)iV(x)λ(zi)\mu(\overline{x})=\prod_{i=1}^{k-1}\sigma(d_i)\cdot\prod_{i\in V(\overline{x})}\lambda(z_i)

这里V(x)V(\overline{x}),是在x\overline{x}上的体顶点的索引的集合,并且是线的测量值(也就是说实数值的标准勒贝格测度)

最后,我们可以定义层BSDF的值fl(ωi,ωo)f_l(\omega_i,\omega_o)作为一个在路径集合Ω(ωi,ωo)\Omega(\omega_i,\omega_o)上的积分:

fl(ωi,ωo)=Ω(ωi,ωo)f(x)dμ(x)f_l(\omega_i,\omega_o)=\int_{\Omega(\omega_i,\omega_o)}f(\overline{x})d\mu(\overline{x})

和往常一样,任意蒙特卡洛方法都可以被用来计算这个积分值。只要生成的采样路径的测度μ(x)\mu(\overline{x})的相应的概率密度p(x)p(\overline{x})是已知的,我们简单地以f(x)/p(x)f(\overline{x})/p(\overline{x})来平均一些采样。

推导

这里我们描述了路径公式的推导。像在Veach的版本(和它的体扩展)中一样,推导的过程通过递归地展开表面和体绘制方程(后者也被称为辐射传递方程)。表面辐射由Ls(z,ω)L_s(z,\omega)(对z{0,1}z\in\{0,1\})表示,体辐射由Lv(z,ω)L_v(z,\omega)(对z[0,1]z\in[0,1])表示。

体辐射会满足标准辐射转移方差,针对我们的位置无关设置:

Lv(z,ω)=S(z,ω)+01τ(z,z,ω)cosωS2fp^(ω,ω)Lv(z,ω)dωdz L_v(z,\omega)=S(z,\omega)+\int_0^1\frac{\tau(z',z,\omega)}{|\cos{\omega}|}\int_{S^2}\hat{f_p}(\omega',\omega)L_v(z',\omega')d\omega'dz'

其中光源S(z,ω)S(z,\omega)给了从平板边界的照明:

S(z,ω)=τ(0,z,ω)Ls(0,ω)+τ(1,z,ω)Ls(1,w)S(z,\omega)=\tau(0,z,\omega)L_s(0,\omega)+\tau(1,z,\omega)L_s(1,w)

需要注意,尽管光源项有两个部分,只有一个部分对任意给定的查询是非零的。这个公式是有效的即使层的内部没有散射,在这种情况下fp^=0\hat{f_p}=0,同时等式九的第二项消失了。进一步,1/cosω1/|\cos{\omega}|系数是由于(从自由飞行距离到深度的)变量的变化。

表面辐射Ls(z,ω)L_s(z,\omega)满足标准绘制方程:

Ls(z,ω)=s2f(z,ω,ω)cosωLsi(z,ω)dσ(ω) L_s(z,\omega)=\int_{s^2}f(z,\omega,\omega')|\cos{\omega'}|L_s^i(z,\omega')d\sigma(\omega')

其中Lsi(z,ω)L_s^i(z,\omega')是入射表面辐射。万一入射辐射查询反过来指向这一层,那么我们有:
 Lsi(z,ω)=Lv(z,ω) L_s^i(z,\omega)=L_v(z,-\omega)

BSDF值由辐射值,由来自ωi\omega_i方向的方向ωo\omega_o光的单位辐照度和有离开表面的方向辐照度决定。在边界条件下,这个等式等于计算Ls(1,ωo)L_s(1,\omega_o)

Lsi(z,ω)=δ(ωωi)cosωi L_s^i(z,\omega)=\frac{\delta(\omega-\omega_i)}{|\cos{\omega_i}|}

人们可以很容易地检查出这种照明下的辐照度是否为单位。因此,当ω\omega指出层时入射表面辐照度LsiL_s^i由等式13给出,同时当指回层时由等式12给出。

路径公式现在可以通过上面对LsL_sLvL_v的等式递归展开期望值Ls(1,ωo)L_s(1,\omega_o)获得,通过边界情况终止路径。需要注意:

  • 对等式九和等式十一的每一个递归展开对路径顶点会各自贡献一个fp^\hat{f_p}或者fsf_s项。

  • 每一个体线段τ(z,z,ω)\tau(z,z',\omega)会引入一个项,不论等式九的第一还是第二个被选择。

  • 扩展绘制等式会对下一线段贡献一个余弦项,当扩展辐射转移等式时会对前一段贡献一个1/cos1/\cos项。这些贡献的组合解释了前面的项。

  • 由于等式十三的分母余弦,当使用边界条件时,最后的表面余弦被取消了。

法线贴图

我们的方法的一个重要的特点是层交界面的法线贴图,引入了集合(平的)法线和着色(贴图)发现之间的不匹配。对线段项的定义随着着色法线的出现而改变。精确地说,它变成了

si=τ(zi,zi+1,di)<n(zi),di><n(zi+1,di)>cosdi s_i=\tau(z_i,z_{i+1},d_i)\frac{|<n(z_i),d_i>||<n(z_{i+1},d_i)>|}{|\cos{d_i}|}

其中n(z)n(z)表示在zz(对z{0,1}z\in\{0,1\})时本地着色的法向量。这个项不再是对称的,这说明带法线贴图的BSDFs通常不是互为倒数。当采样路径从光源开始,使用Veach提出的修正项处理这种BSDF是十分重要的。

关于倒数的说明

我们的BSDF会是互为倒数的每当路径贡献f(x)f(\overline{x})相对于翻转路径是对称的。假设法线贴图没有被使用,线段项sis_i会是对称的,所以互为倒数归结为顶点项viv_i的对称性。只要所有相位函数和BSDF是互为倒数的这就会保持。

然而,需要注意在一般情况下穿过一个有不同折射系数(是否光滑或者粗糙)的区域的交界面是不糊味道是的。相反,一个物理折射的BSDF应该有一个修改的互为倒数关系

fs(ωi,ωo)=ηo2/ηi2fs(ωo,ωi) f_s(\omega_i, \omega_o)=\eta_o^2/\eta_i^2\cdot f_s(\omega_o,\omega_i)

其中ηi\eta_iηo\eta_o是相应介质的折射率。在一般的情况下BSDF的入射和出射方向都被假设在空气中,最后的层BSDF将会仍然是互为倒数的,因为对沿着路径的每一个折射率为η\eta的介质,η2\eta^21/η21/\eta^2的数量是相同的。

多个平板

最后,我们将我们的框架扩展到支持多个平板,这是在理论上相对来说简单,只需要显示记录一个点或者线段所属的交界面或者体。我们也需要在段穿过内部交界面时修改转移项τ(z,z,ω)\tau(z,z',\omega)为零。

另一个获得多层BSDF的方法是通过递归嵌套BSDF。为了通过堆叠nn层板来构建层BSDF,我们通过堆叠n1n-1层板来定义层BSDF,并且根据之前的理论用这个BSDF加上顶部的BSDF作为交界面的BSDF。

我们已经法线这个方法在实际中起作用,但是它的性能比之前说的显示定义要糟糕。

我们的估计

我们现在描述我们特别的层BSDF方法,通过展示我们的蒙特卡洛解法来使能三个在完全定义BSDF模型时需要的关键的操作:采样,求值和pdf计算。采样产生由入射方向ωi\omega_i而给定的出射方向ωo\omega_o(或者相反),同时求值回答了对给定的ωi\omega_iωo\omega_o的BSDF查询。需要注意,由采样、求值和pdf过程返回的值是随机的,并且BSDF值,pdf值或采样权重只在期望上等于真正的值。概率计算被用于一些最近的BSDF模型中。

MIS被广泛用于结合多个技术来产生一条给定的路径,并且是在复杂光照场景下获得低噪音的结果的关键方法。这个方法通常使用被借的的技术的采样pdf来产生权重,这需要层BSDF的pdf值。我们介绍了两个方法:一个计算确切的期望的pdf的无偏的方法,同时一个快、近似的版本,展示了MIS的效率。在补充材料中,我们展示了在用近似的MIS的权重和随机计算权重和函数值中估计依然是无偏的。

BSDF采样

采样一个BSDF是一个在给定入射光线ωi\omega_i的情况下绘制出射光线ωo\omega_o(或者相反)问题,其中pdf对值fl(ωi,ωo)f_l(\omega_i,\omega_o)是精确或者近似成比例的(如果可能,乘上cosine项)。这是简单的:我们通过由光和层的设置相互作用的随机过程绘制ωo\omega_o。也就是说,我们利用一个从一个方向ωi\omega_i开始的光并且显式模拟光和层的交界面和内部戒指的仙湖作用通过采用相应的BSDF和相位函数的纯正向光线追踪,累加通过路径的值。当光最终离开层时,它的方向为ωo\omega_o,并且整个光线传播路径的通过量给了一个随机采样权重。形式上,这个权重是BSDF的一个估计,乘上cosine方向,除以在立体角测量上的采样pdf。

尽管这个模拟类似于蒙特卡洛光路传播,它同城比在全局场景中跟踪光线更加高效,由于简化的平板配置(在这个情况下,光线跟踪变成了简单的数值计算,不需要任何加速结构)。

BSDF估计

为了估计我们的在给定入射和出射光线ωi\omega_iωo\omega_o下的BSDFflf_l,我们介绍两个基于蒙特卡洛的方法来计算等式八的路径积分。第一个类似于带有下一事件估计的单向路径追踪,而第二个使用一个双向的结构

单向模拟

在标准的路径追踪中,一个着色点在被称作直接照明或者下一事件估计的过程中会直接和一个光源相连,这对低方差渲染至关重要。与此技术类比,考虑一个在一个平板中的着色点(无论是在交界面的底部或者一个在介质中的散射点)。我们想要创建一个路径以ωi\omega_i结束,直观上,连接到一个外部的方向为ωi\omega_i的方向光源。然而,直接连接着色点和期望的外部方向通常是不合理的,因为层的顶部会有折射。 为了处理这个为力,我们提出了我们的下一事件的结构,直接连接可能的粗糙反射面的反射时间。假设我们的路径追踪以方向ωo\omega_o开始不失一般性。在每个散射事件时,我们需要找到一个方向ωi\omega_i'那么ωiωi\omega_i\rightarrow\omega_i'在交界面上满足BSDF。到此为止,我们根据给定ωi\omega_i通过反向采样交界面BSDF得到ωi\omega_i'。最终,我们可以简单地将加速的吞吐量和