如果您阅读有关地下散射的文章,那么您会经常遇到对所谓“偶极近似”的引用。这个术语似乎可以追溯到Henrik Wann Jensen等人的论文《地下光传输的实用模型》,但是这篇论文很难理解。

有人可以相对简单地解释偶极子是什么近似是什么以及如何用于渲染次表面​​散射?

评论

这确实是一份复杂的论文(仍然时不时地给我带来噩梦!),但是我试图简化整个过程。让我知道您是否认为以下答案应以其他方式调整:)

#1 楼

该模型所基于的假设与许多其他皮肤渲染模型相同。地下散射可以近似为扩散现象。这是好的,因为在高度散射的介质中,光的分布失去了与角度的依赖性,并趋于各向同性。

偶极近似是一种解析性解决此类扩散问题的公式。

基本上,它们是从将BSSRDF近似为多重散射和单个散射分量开始的。然后将多次散射定义为:其中$ F_t $是菲涅耳项,而$ R $是扩散曲线,表示为入口与入口之间的距离的函数。出口点。

此$ R $被称为扩散轮廓,它们通过偶极近似来表示此轮廓。入射光线的贡献被认为是两个虚拟光源之一:一个在表面下方的负离子,另一个在表面上方的正离子(这就是偶极子的原因)



图片中的r是上面的$ \ | x_i-x_o \ | $。这些光源的贡献取决于各种因素,例如光与表面的距离,散射系数等(有关公式本身的详细说明,请参见下文)。

该模型仅考虑了多个散射事件,但是对于皮肤来说已经足够了。但是必须注意,对于某些半透明材料(例如烟和大理石),单一散射是基本的。该论文提出了一种单一的散射公式,但价格昂贵。

对于实时应用,扩散轮廓通常近似为一系列高斯模糊(例如D'Eon等人在GPU Gems 3中的开创性作品,然后用于Jimenez的SSSSS)使它适用于实时场景。在这篇精彩的论文中,有关于这种近似的细节。
从那张纸上得到的图片实际上表明了这种公式的优劣:



注意,偶极近似假设材料是半无限大的,但是这种假设并没有。用薄板和多层材料(例如皮肤)固定。 Donner和Jensen [2005]在偶极子工作的基础上提出了解决偶极子问题的多极子近似方法。
使用该模型而不是单个偶极子,作者使用一组模型来描述散射现象。在这样的公式中,可以通过将所涉及的不同偶极子的贡献相加来获得反射率和透射率曲线。
NathanReed在评论部分中的问题:即使具有扩散轮廓近似值,BSSRDF模型仍需要对表面附近点的半径进行积分以收集入射光,对吗?例如,如何在路径跟踪器中完成该操作?您是否需要建立一些数据结构,以便可以在给定点附近的表面上对点进行采样?

他们在链接的论文中使用了蒙特卡洛射线示踪剂,在一个点周围随机采样,其密度定义为: {tr} d} $

其中sigma值是下面定义的有效消光系数(取决于材料的性质,即散射和吸收系数),d是到点的距离我们正在评估。这样定义密度,因为扩散项具有指数衰减。

在[Jensen and Buhler 2002]中,他们提出了一种加速技术。主要概念之一是使采样与扩散项的评估脱钩。这样,当评估扩散时,他们对在采样阶段计算出的信息进行分级评估,以将远处的样本聚类在一起。本文描述的实现使用八叉树作为结构。
,根据这篇论文,这种技术比完整的蒙特卡洛集成要快几个数量级。
不幸的是,我从未涉足离线实施,因此我无能为力。

在实时的高斯求和近似中,当定义需要应用的高斯模糊的方差时,隐式设置了正确的半径。


为什么有一个正负一盏灯?是的,它们的目标是彼此抵消吗?



是这样定义的偶极子源方法(日期早于詹森的论文)满足了某些边界条件。具体来说,在与$ 2AD $的表面有一定距离的某个外推边界处,注量必须为零,其中

slab值,即sigma值是降低的消光系数,如下所述。


EDIT2:我在博客文章中对此回答中的一些概念进行了扩展(一点):http://bit.ly/1Q82rqT

>
对于那些对公式中的希腊字母不感到害怕的人,以下是我论文的摘录,其中每个术语都简要描述了反射率分布:

评论


$ \ begingroup $
谢谢!我仍然想知道几件事。 (1)即使采用扩散轮廓近似值,BSSRDF模型仍然需要对表面上附近点的半径进行积分以收集入射光,对吗?例如,如何在路径跟踪器中完成该操作?您是否必须建立一些数据结构,以便可以在给定点附近的表面上采样点?并且(2)为什么有一个正光和一个负光?他们的目标是以某种方式互相抵消吗?
$ \ endgroup $
–内森·里德(Nathan Reed)
15年8月6日在18:21

$ \ begingroup $
1)的确,他们在论文中使用蒙特卡洛射线示踪剂提出的建议是基于距离和消光系数的特定密度的随机采样。我想您可以掷飞镖来找到样品,并根据消光系数来使用适当的接受概率。和距离。 (1/2)
$ \ endgroup $
–cifz
15年8月6日在19:37

$ \ begingroup $
我知道詹森(Jensen)在2002年发布了一种层次化的集成方法,不幸的是,我只是读了一段时间而已,所以我只记得了一点点。核心概念是将样本与扩散近似样本和聚类远距离样本分离。 IIRC他们使用八叉树作为层次结构。我从来没有进入过脱机实施的过程,因此恐怕我在其他细节方面没有太多帮助。 (2/2)
$ \ endgroup $
–cifz
15年8月6日在19:38

$ \ begingroup $
2)通过这种方式可以满足某些边界条件,您希望在与介质有特定距离的某个外推边界处使注量变为零。该距离是根据散射系数和散射反照率计算的。
$ \ endgroup $
–cifz
15年8月6日在19:38

$ \ begingroup $
@NathanReed让我知道这是否已经澄清了一些,否则我可以尝试在答案本身中扩展此评论中的想法
$ \ endgroup $
–cifz
15年8月7日,下午5:38

#2 楼

为了轻松理解“偶极子理论”,我们首先要了解“偶极子理论”的来源。

它是通过解决辐射传输方程(RTE)来模拟参与介质中的光传输)。

经典扩散近似通过仅考虑辐射度的一阶球谐展开来求解RTE。如果进一步假设源函数是无限均质介质中的单位幂各向同性点源,则可以得到经典的扩散格林函数(单极)。

渲染半透明材质时,方便用类似于局部表面反射积分的公式来构造这个问题。这样就产生了一个积分方程,该积分方程在位置和方向上计算出的辐射辐射率Lo是所有入射位置和方向上入射照明Li和BSSRDF S的​​卷积。使用格林的扩散函数,我们不考虑材料表面施加的边界条件。对于介质内部的每个正源,可以通过在介质外部放置一个镜像的负源来简单地处理这些条件,以使通量在表面上方的外推距离处归零。这是偶极近似。

因此,在没有边界条件的情况下,我们的通量在介质中以体积表示。要渲染次表面​​散射,我们必须计算在表面上留下不同点的光。为此,我们必须计算偶极子引起的扩散剖面,以便评估注量在表面法线方向上的方向导数。

BSSRDF的最新进展来自于移动初始体积和参与式媒体方法与临时性材料更好地考虑了表面边界条件。

..点附近
是的,我们将入射光强度计与BSSRDF集成在所有入射位置和方向上。

现在我们可以在这里采用蛮力法或俄罗斯掷镖法掷镖。但是,它们都是幼稚的方法。

当一种近似方法被开发为使用八角形数据结构使用分层光收集的近似方法时,SSS投入生产(在此烘焙出散射光以便在群集中可用)。用于SSS计算。对于Renderman,这是REYES的自然方法,因为REYES产生的每个微多边形都可以轻松地“散布”到一个点中并插入到八叉树中。采样(Arnold),现在已成为许多SSS实施的实际方法。通常,我们定义一个搜索体积(球体),在表面上方的磁盘上分配样本,然后沿法线方向和正交方向进行探测,以找到该体积内的所有命中点。