A Practical Model for Subsurface Light Transport
一个次表面光传输的实用模型
Henrik Wann Jensen Stephen R. Marschner Marc Levoy Pat Hanrahan
斯坦福大学
注:这里是直接word导出来的,某些公式可能会被吃掉,更完整的文章可以看这里。
摘要
本文介绍了一种描述半透明材质的简单的次表面光传输模型。该模型可以有效模拟BRDF模型无法捕获的效果,如颜色在材质内部的渗色和光线在阴影边界的漫反射。即使对于使用现有方法进行模拟的各向异性高散射介质也是有效的。该模型将单个散射的精确解与多重散射的偶极子漫反射近似相结合。我们还设计了一种新的,快速的基于图像的测量技术用于确定半透明材质的光学性质。我们通过比较预测值和测量值来验证模型值,并展示了该技术如何用于恢复各种材质的光学性质,包括牛奶,大理石和皮肤。最后,我们描述了在常规射线追踪器中使用该模型的采样技术。
-
简介
通过材料对光的散射进行准确建模是实现真实图像合成的基础。即使最复杂的光传输算法也不能产生令人信服的结果,如果局部散射模型太简单。因此,大量的研究已经描述了材质的光散射。
以前的研究集中在开发双向反射分布函数模型(BRDF)。 BRDF由Nicodemus [14]引入,作为更一般的双向次表面散射分布函数的简化(BSSRDF)。BSSRDF可以描述与表面相交的任何两个射线之间的光传输,而BRDF假定光线进入材质并在同一位置离开材质(图1)。这种近似值对于金属是有效的,但它对于在表面下表现出显著传输的半透明材质而言是不适合的。即使对于许多看起来不透明的材质,使用BRDF只能创建一个硬的,边界明显的计算机生成的外观,因为它不会局部混合表面特征,如颜色和几何体。只有考虑次表面散射的方法才能捕捉半透明材质(如大理石,布,纸,皮,牛奶,奶酪,面包,肉类,水果,植物,鱼类,海水,雪等)的真实外观。
-
准备工作
几乎所有的BRDF模型都是衍生自次表面散射,任何次表面散射都由Lambertian分量近似。一个例外是Hanrahan和Krueger [10]的模型,其包括在均匀照明平板中单散射的分析表达式。但是,所有BRDF模型最终都假定光在一个表面点散射,他们不会将次表面散射从一个点模拟到另一个点。
通过求解全辐射传递方程,可以准确地模拟次表面传输,但是很慢[1]。图形学中只有几篇论文采用这种方法进行次表面散射模拟。Dorsey等人[5]使用光子映射模拟完全次表面散射,以捕获石头风化的外观。 Pharr和Hanrahan[15]使用散射函数来模拟次表面散射。这些方法,虽然能够模拟所有的次表面散射的效果,但是与不透明材料的模拟相比,在计算上非常昂贵。基于路径采样的技术对于高散射材质来说是特别低效的,诸如牛奶和皮肤的材质,其中光在离开材质之前散射多次(通常几百次)。对于高度散射的介质Stam [17]引入了漫反射的使用理论。他使用多网格方法解决了漫反射方程的近似,并使用此方法来渲染云的多重散射。
次表面散射在医学物理学中也是重要的,在人体组织中[6,8]已经开发了用于描述激光散射的模型。在这种情况下,通常使用漫反射理论预测以及测量高散射材质的光学性质。我们已经通过添加精确的单散射扩展了这个用于计算机图形学的理论,支持任意几何,以及用于渲染的实际采样技术。
在计算机图形外观测量中,很少考虑次表面散射。Debevec等人 [3]测量人脸的光反射,其中包括次表面散射的贡献,但它们并没有将数据与材料的物理性质相关联。再次建立在医学物理研究上[8,9],我们将开发用于测量生物组织的方法扩展到半透明材质的快速成像外观测量技术。该方法检查由照射样品材质的光束产生的径向反射率分布。通过拟合从漫反射理论得到的表达式,可以估计材质的吸收和散射性质。
-
理论
对于BSSRDF公式, 其中的S, 是指出射辐射率,是指在方向上点的光入射的流量,是方向上点的光入射流量:
图1:光的散射,a是BRDF,b是BSSRDF
BRDF是BSSRDF的近似,它假设光线的射入和离开在同一点(例如,). 给定BSSRDF,通过将入射方向和面积A上的入射辐射率积分,计算出射辐射率:
参与介质中的光传播由辐射传输方程描述,在计算机图形中通常称为体绘制方程:
在该等式中,介质的性质如下所述,吸收系数,散射系数
,相位函数
。消光系数定义为,
。我们假设相位函数是归一化的,
等式成立,仅当相位角
。这意味着散射角的余弦,
,是
如果g为正,则相位函数主要是前向散射;如果g为负,则主要是后向散射。一个常数相位函数会导致各向异性散射(g=0)。
对于进入均匀介质的无穷小波束,传入的辐射率将随着距离s而呈指数下降。这也适用于降低的强度:
被降低强度的一阶散射,,可能被视为一个体积源:
为了深入了解光传播的体积行为,求点x的所有方向上辐射传输方程的积分是很有用的,它将得到:
</