当前位置:   article > 正文

次表面散射材质_第4章 光线在参与介质中传输(体积散射的一些基本概念)

体积散射材质浑浊的原因是

f60d2ab0ffa9efba9e62b691b7493cd1.png

前言:关于大作业-体积散射的参考资料的第一个链接,Wojciech Jarosz 的这一章的翻译,英语苦手手动翻译难免有错

12a803f444561806a15c348f78ada244.png

在先前的章节中,我们假设所有的光线交互发生在表面。尤其,第2章的渲染方程假设离开一个表面的光辉(radiance)在碰到其他的表面之前保持不变。这两点之间的光辉常数性质如式(2.10)所示。然而,这种关系只有当表面嵌入在真空中时才成立,因为光子(photons)在从一个表面传递到另一个表面的时,能够畅通无阻的传播。然而,在现实中,我们每天看到的大多数场景并不满足这个限制。在对象之间的空间通常被一些集群介质(如:空间,水)占有,此外这些媒介包含杂质和悬浮的微小粒子。在这些情况下,当光线在表面之间传播时,介质参与了光线的交互。

如果介质中粒子很少,比如在干净的空气中越过很短的距离,光不受阻碍地传播的假设是一个合理的近似值。然而,即使是干净的空气也会散射光线(这就是天空为什么是蓝色的原因),而且当光线传播越过更长的距离时,比如在露天的户外场景,可能发生更多与粒子的交互。

在本章节中,我们通过考虑中间介质的影响来扩展我们的光照行为模型。我们通过推导公式2.9和2.10所施加的约束来放宽光辉在通过参与介质时的变化。一般允许我们去模拟光线在云内部、浑水、雾以及任何其他在光线交互中参与的介质


b0d56d5889dd2e951a5f399773de5b6d.png

图4.1:我们将参与介质视为微观散射粒子的集合。当光线通过介质,一个光辉的变化,(

)L(x,
),可能发生在光子和粒子交互时。

4.1 关于散射介质的假设

在本论文和大部分计算机图形学应用中,为了更容易的推导出关于光线行为的公式假设了散射媒介的属性。尤其,我们假设中间介质可以被建模为微观粒子(如图4.1)的集合。因为粒子是微观的,并且被任意的放置,我们不需要表示每一个读理的粒子在光线中的模拟。反而,我们考虑当光线通过媒介时集合的概率行为。此外,这些粒子被认为与单个粒子的大小有很大的距离。这个假设意味着当光子通过媒介并且与粒子交互时,这种交互作用在统计上独立于后续交互事件的结果。


4.2 光线交互事件

当光子通过微观粒子的集合时,它可能会错过所有的粒子并继续不受影响,或者它可能与一些粒子交互。交互发生的概率与介质的消光系数(extinction coefficient)有关 ,

(单位[1/m])。 数量取决于在介质中粒子的密度和大小。当发生交互时,两件事情可能发生:光子可能被粒子吸收(通过转化成另一种形式的能量,比如热量),或者光子可能被散射到其他方向。这两个事件的相对概率由吸收率(absorption)
给出,散射(scattering)系数
以及
是消光系数。这两件事中的任何一件都会导致光线的光辉发生变化。

4.2.1 消光

考虑一束细光沿

的方向穿过介质(见图4.1)。进入该光束的光子数与入射辐射度L ( x→
)成正比。在沿光束的每一小步Δt,有一部分光子会在光束的起始点与介质相互作用并被吸收。如果段内的吸收系数是σ a ( x+t
),那么将有一部分σ a ( x+t
) Δt 的光子被吸收。因此离开该段的光子可以表示为:

(4.1)

通过重新排列项,我们可以确定在本段开始时和结束时的输出辐射度的变化:

(4.2)

取极限为∆t→0计算导数。 辐射度的差异变化,是由于光线沿某一方向

移动时的吸收(absorption)是:

(4.3)

其中

表示因吸收而产生的梯度,(
)计算沿着
方向的导数。

cac628556f33deaf6e82f1be81c65cb9.png

图4.2:当光线穿过参与介质时,辐射度(radiance)可能变化为四种不同类型的交互作为结果:吸收(absorption), 自发光(emission), 外散射(out-scattering)和内散射(in-scattering)

每一步,因为光子被散射到其他方向光辉也可能被降低。在段内发生的概率由介质的散射系数

决定。按照同样的推导法,我们可以将外散射(out-scattering)引起的辐射度变化表示为:

(4.4)

由吸收或外散射引起的净辐射损耗称为消光(extinction),表示为:

(4.5)

上面的微分方程可以求出光束的透射率(beam transmittance),或者简单透射率,用

表示。透射率表示沿着一条直光线能够在介质中两个点之间畅通无阻的光子的比例。通过积分方程4.5,我们将透射率表示为:

(4.6)

指数项

称为光厚度(optical thickness)或光深度(optical depth),通过消光效应沿着一条线段进行积分得到:

(4.7)

中 t∈[0, d] 用参数表示
之间的线段。在均匀介质中,
是一个常量,
可以简单的计算为:

(4.8)

透射率总是在0到1之间。当只考虑吸收和外散射时,透射率可以用减少的辐射率(reduced radiance)来计算,

(4.9)

描述了光线从

时,辐射度是如何减少的。如果消光效应被考虑,这关系取代了方程2.10,被称为贝尔定律(Beer's Law)。

点与自身的透射率总是1:

。另一个有用的性质是,沿直线三个点之间的透射率是乘法的:

(4.10)

对于

之间的所有点

4.2.2 内散射(In-Scattering)和自发光(Emission)

除了辐射度的丢失,当光线穿过介质时,辐射度可能增加。同一过程中,由于外散射导致辐射沿

方向减小,也可能由于从其他方向的内散射而导致辐射增加。实际上,散射造成了入射方向上的辐射损失,向散射方向辐射的相应增加。由内散射引起的辐射变化可以类似于上述的消光和外散射,但依赖于
,即内散射辐射:

(4.11)

我们在下一节更详细的解释内散射辐射。

介质,比如火,也会发光

,通过自发地将其他形式的能量转化为可见光。这种自发光(emission)导致了在辐射强度上的增加,其表达式为:

(4.12)

4.2.3 介质特性

吸收

和散射系数
以及相位函数(the phase function)
在下一节描述,充分定义光在参与介质中的局部行为。如果通过介质的介质系数是常量,那么这些介质时均匀的(homogeneous)。这可能是一个可接受的近似值,例如在均匀雾的情况下。更多的介质是不均匀的(heterogeneous),意味着通过介质的吸收和散射系数可能不同。

介质的另一种描述性质可以由散射系数和消光系数之间的无单位的比例

推导。被称为散射反射率(scattering albedo),它给出了光子在介质中特定位置散射的概率。反射率为0意味着介质中的粒子不散射光线,而反射率为1意味着粒子不会吸收光线。反射率与表面的平均反射率有相似的意义。

4.3 内散射辐射度(In-Scattered Radiance)和相位函数(the Phase Function)

4.3.1 内散射辐射度

内散射辐射度

表示所有的光线被散射进了沿
方向的光束。内散射辐射的计算包括对整个方向球
的入射辐射进行积分,

(4.13)

是相位函数描述在介质中一点的光线散射的角度分布(如图4.3)。由于这个函数,内散射辐射通常不是各向同性的(不像自发光和吸收),而是取决于向外的方向。

内散射辐射的计算与表面反射辐射的计算极为相似。注意式4.13中入射辐射与式2.14中反射辐射的相似性。区别是BRDF被替换成了相位函数,没有余弦投影项(因为目前没有表面),并且积分是在整个球体方向上进行的而不是在半球上。


4.3.2 相位函数的特性

  1. 互反律(Reciprocity)。同BRDF一样,相位函数遵循亥姆霍兹互反律(Helmholtz’s law of reciprocity),所以
    。为了说明这一点,我们使用以下符号:

(4.14)

4a3a9224a6df41e488f858fce394956f.png

图4.4:相位函数遵循亥姆霍兹的互反原理:如果光线的方向反向,函数的值保持不变。这相当于交换了观察者和光源的位置(右),即

注意在本论文中,相位函数的入射方向和出射方向两者都指向远离评估位置的地方

。除此之外,相位函数通常只取决于传入方向和传出方向之间的角度
,在这种情况下,它可以简单地表示为
。图4.4对这些概念进行了说明。

2. 归一化(Normalization),与BRDF不同,相位函数的单位是[1/sr]。在本文推导的基础上,假设它是归一化的。这意味着它总是精确地在方向球上积分为1:

(4.15)

4.3.3 相位函数的例子

在文献中已经发展了许多不同的相位函数,我们简略的解释一些平常被用在计算机图形学中的相位函数。

各向同性相位函数(The Isotropic Phase Function)

与漫反射等价的是完全的各向同性散射。各向同性相位函数是一个常量,根据方程4.15中的约束条件,很容易证明它等于

(4.16)

无论入射方向如何,各向同性介质都将光线均匀地向各个方向散射。

Henyey-Greenstein相位函数(The Henyey-Greenstein Phase Function)

最常用的非各向同性相位函数之一是Henyey-Greenstein相位函数,这是根据经验推导出来的,用来模拟银河间尘埃对光的散射。由于它的简单,亨氏-格林斯坦相位函数成功的应用在许多其他散射材质的模拟中,比如海洋、云和皮肤。

函数只取决于角度

,被定义为:

(4.17)

参数

,决定了前后散射的相对强度。

不对称参数

具有物理意义--代表散射方向的平均余弦。正的
值表示正向散射,负的
值表示反向散射。
的值导致各向同性散射。
的这个定义的一个方便的副作用是,更复杂的散射函数可以很容易地通过计算
得到Henyey-Greenstein相位函数:

(4.18)

Schlick相位函数(The Schlick Phase Function)

虽然Henyey-Greenstein相位函数是直观和灵活的,但分母上的分数指数的计算是比较昂贵的。在计算机图形学中,Henyey-Greenstein相位函数的确切形状通常不是必需的。这使得Blasi和他的同事开发出类似的相位函数,它可以更有效的评估功能。由此产生的Schlick相位函数近似于一个椭球面形状的Henye-Greenstein函数:

(4.19)

其中

参数控制的优先散射方向相似。与
一样,所有的反向散射是
表示所有的正向散射,并且
对应各向同性散射。Pharr和Humphreys找出了多项式方程的中间值

(4.20)

可以用来精确地近似Henyey-Greenstein相位函数。Henyey-Greenstein和Schlick相位函数如图4.5所示三种不同的

值。

54a746798362c046a5b12436f0d58e5d.png

图4.6:Rayleigh散射相位函数(左边的)由一个对称的向前和向后散射贡献。Hazy(中间的)和Murky(右边的)相位函数是Lorenz-Mie理论所指示的雾态大气中的散射行为。

Rayleigh散射

在1871年,Rayleigh推导出光线对空气分子散射的公式。Rayleigh散射是对光线行为的一种近似,因为它由大约十分之一波长的光组成的介质中散射。这个模型是通过假设一个非常小的镜面球的随机分布而得到的,结果相位函数是相当的简单:

(4.21)

Rayleigh相位函数如图4.6所示。

Rayleigh散射也高度依赖于光的波长。这是由波长相关的散射系数得到的,

(4.22)

是光的波长,
分别是粒子的直径和折射率。这种Rayleigh散射的波长依赖性是天空蓝色和日落红色的原因。

Lorenz-Mie理论

Rayleigh散射只是一种近似值,当粒子的大小相对于波长的时候起作用。当粒子与光的波长相当时,比如雾中的雨滴,更复杂的Lorenz-Mie理论散射变得适合。Lorenz-Mie理论通常用于对一组均匀的球形粒子推导相位函数,直径与波长之比在那里是允许的。Mie散射是基于从Maxwell方程推导出的更通用的理论。

Nishita等人提供了两个以经验为主的推导去近似雾气(foggy atmospheres)复杂的Lorenz-Mie散射函数,一个是hazy大气,一个是murky大气:

(4.23)

(4.24)

相位函数如图4.6所示。

最近,Lorenz-Mie理论的推广已经被提出,它可以计算一组非球形粒子在吸收宿主介质中的散射特性


4.4 体积渲染方程

4.4.1 辐射传递(Radiative Transfer)方程

已知前面章节描述的四个散射事件,我们可以开始形成光在参与介质中行为的完整模型。通过组合4.5、4.11和4.12,射线在

位置处的总辐度变化可以表示为

(4.25)

26fe245b563866f1b0c3806f87f81226.png

这个方程被称为积分微分形式的辐射传递(radiative transfer)或者辐射传递方程(radiative transport equation),或者缩写为RTE,它合并了四个可能在介质中发生的交互事件类型(回想一下图4.2)。

对方程4.25两边积分,用渲染方程(方程2.17)作为边界条件,在有参与介质的情况下,可以得到辐射的完整积分方程。RTE的积分形式将辐射度(radiance)表示为三个项的和:

a5e723400087a1e05ec62791cec949c6.png

描述从方向
到达
的辐射度,
是从
到 方向
的深度,
对于
是一个点通过介质在表面上(如图4.7)。透射率
模拟辐射度的减少,当它穿过介质时,如第4.2.1节所述。

方程4.26中第一项表示从介质背面进入的表面辐射,第二项包括沿着介质自发光的辐射度,最后一项在介质中的散射的辐射度。内散射辐射度由4.13给出。在本论文的其余部分,我们将忽略自发光项,因为它计算起来很简单。这种简化,入射(incident)辐射度和激发(excitant)辐射度之间的关系可以表示为

234bf7c7c8c25c8302ef74470edd2161.png

当考虑介质散射和吸收时,这个方程代替了方程2.10中的关系。

在计算机图形学中,这种辐射传递方程的积分形式通常被称为体绘制方程(volume rendering equation),因为这是一个方程,必须解出来才能使用参与介质渲染图像。不幸的是,体绘制方程甚至比常规渲染方程更复杂。它将参与介质中的辐射度描述为体积中3D位置上的一个五维函数和球面上的二维方向。介质中任意一点的辐射强度取决于介质中所有其它点的辐射度以及表面上所有点的辐射度。相比之下,常规渲染方程只是这个表达式的一个四维子集(2D表面位置和2D方向)。这使得体绘制方程的求解非常昂贵。


4.5 体积绘制方程的解决方法

模拟光线在参与介质中传播已经在文献中被广泛研究。今天使用的许多技术最初是在20世纪50年代和60年代开发用来研究辐射传递(radiative heat transfer)和中子输运(neutron transport)的。Mishra1和Prasad对这一早期工作进行了很好的综述。直到1982年,Blinn发表了开创性的论文,计算机图形学中才开始考虑体积效应。从那时起,许多研究人员研究了在计算机图形环境下有效模拟体积散射的方法。我们在这里简要地总结一下最重要的工作,参考Cerezo等人的优秀调查(survey)。以更全面地概述如何解决计算机图形学的RTE。

4.5.1 确定性方法(Deterministic Methods)

一些最早的参与介质渲染的研究扩展了离散辐射方法来处理各向同性体积散射。Rushmeier和Torrance用区域法(zonal method)来离散体绘制方程,在一组有限元素或区域上求解它。这种早期的方法模拟了体积-体积、表面-体积以及表面-表面的交互,但是由于存储成本高和

计算复杂性,除了最简单的场景外,其他场景都不适用。就像地面基辐射(surface-base radiosity)技术一样,其中一些问题后来通过使用聚类(clustering)和层次(hierarchical)计算得到了解决。

确定性方法后来被扩展到处理各向异性散射。

方法使用级数近似( series approximation)用一组偏微分代替积分-微分RTE,用N个球谐项展开。这种方法在1984年由Kajiya和Herzen引入到图形学中,但在更早的时候就已经用于辐射传热和中子输运领域,最早是在1917年由Jeans引入的。Bhate和Tokuta利用球面谐波(spherical harmonics)代替常数基函数去模拟各向异性散射用
近似扩展了区域法。这种方法的计算开销甚至更高,需要计算
形式因素(form factors)。另一种方法是离散坐标(discrete ordinates)法,Chandrasekhar首先提出这个方法来模拟恒星和大气辐射。该方法将每个区域的辐射划分为M个离散的方向箱( discrete directional bins),并将复杂性降低到
。不幸的是,离散纵坐标受到“射线效应”的影响,因为光是在离散方向上传播的,而不是在箱子的整个立体角(solid angle)上传播。Max通过近似整个箱子的扩散降低了射线效应(ray effect),并且能够将每次迭代的效率提高到

辐射度技术(radiosity techniques)的一个主要好处是它的解是在世界空间中计算的。这使得算法可以通过稀疏地计算解来利用空间相干性(spatial coherence)。不幸的是,体积有限元(volumetric finite element)也存在基于表面辐射(surface-based radiosity)技术的缺点。具有复杂几何结构的场景,体积密度不能很容易的处理,由于光传输的计算,它严格耦合(coupled)到场景的几何表示。


4.5.2 随机(Stochastic)方法

到目前为止,最流行的一些技术是基于随机抽样(stochastic sampling)和蒙特卡洛(Monte Carlo)积分。Rushmeier利用蒙特卡洛方法扩展了区域法,以考虑各向异性散射的一次反弹。路径追踪(path tracing)的扩展去模拟在参与介质中的体积散射已经被Hanrahan、Krueger、Pattanaik和Mudur提出。双向路径追踪(bidirectional path tracing)的扩展和大都市光线传播(Metropolis light transport)已经被提出。蒙特卡洛方法很有吸引力,因为它们有健全的理论基础和普遍性。它们是无偏的,保证收敛到精确解。另外,包含非均匀介质、各向异性相位函数和表面散射是很简单的。这些方法的缺点是,它们所遭受的噪声(noise)只能通过大量的计算工作来克服。

解决这一问题的一个策略是简化对参与介质的假设。例如,利用扩散近似可以精确地模拟具有高散射反照率的均匀介质,这导致了非常有效的渲染算法。Premoze等人在介质是弱(tenuous)的和强前向散射(strongly forward scattering)的假设下,用一路径积分公式去推导高效渲染算法。Sun等人实时的渲染单次散射,但是没有阴影效果。

相比之下,光子映射(photon mapping)提高了路径追踪的效率,而不需要对被渲染介质的属性做额外的假设。类似于蒙特卡洛方法,光子映射处理任意反射率的各向同性、各向异性、均匀的和不均匀的介质。光子映射的一个缺点是它在求解辐射传递方程时引入了偏差。然而,实际上,这种偏差优于纯蒙特卡洛方法的噪声解。我们将在第七章更详细地讨论光子映射方法。

本论文主要研究辐射输运方程的有偏蒙特卡罗解。这些技术利用了与有限元方法相关的空间相干性优点,同时仍然保留了基于蒙特卡洛方法的通用性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/95063
推荐阅读
相关标签
  

闽ICP备14008679号