Chapter 9 – Physically Based Shading 基于物理的着色

9.11 波动光学BRDF模型

在之前几个小节中我们学习的BRDF模型都基于几何光学,其认为光线以射线传播而不是波。正如我们在之前提到的,几何光学建立在假设,任何表面的不规则性都小于一个波长或者大于一百个波长。

但是,现实世界中的表面并不是那么规整,它们有着各种各样的不规则性,其中也包括1-100个波长。而我们将这一类不规则性称之为nanogeometry。nanogeometry对于反射率的影响不能通过几何光学进行模拟,其只取决于光波的自然属性,并且只能通过wave optics(波动光学,又被称为physical optics物理光学)进行模拟。

在本小节中,我们将学习波动光学的现象,例如diffraction衍射以及薄膜(thin film)表面,并且了解它们对于渲染的重要影响。

9.11.1 Diffraction Models(衍射模型)

Nanogeometry会造成diffraction(衍射)现象。我们将使用Huygens-Fresnel原理来解释这一现象,该原理表明,波阵面上的每一个点都能作为一个新的球形波的源点。如下图所示。在左侧部分中,我们看到了一个二维平面内的波阵面在空间中传播。如果波阵面上的每一个点都作为一个新的球形波的源点,那么新生成的波的表面将会发生interfere destructively(相消干涉),最后将会形成向前的平面波阵面。中间部分,波将会遇到一个障碍物。由于障碍物一侧没有波阵面,因此其边缘将会发生衍射或者说“泄露”。右侧的而不分钟,平面的波阵面从一个平面的表面反射。平面波阵面上,位于左侧的点将先与表面发生碰撞,而从左侧表面射出的球形波也会有更多的时间在空间中传播,这些波也会更大。不同尺寸的球形波阵面将在反射波阵面发生增强干涉,在其他方向发生相消干涉。

当光波与障碍物相遇时,Huygens-Fresnel原理表示,他们将会在拐角处变弯,也就是所谓的衍射。我们并不能通过几何光学来解释这一现象。当光线入射一个平面表面时,几何光学能够准确的模拟出光在单一方向上的反射。也就是说,Fresnel-Huygens原理能够提供更多的细节。其表明,物体表面的球形波将会形成新的反射波阵面,其他方向上的波则会因为相消干涉而消除。当我们看那些带有nanogeometry不规则性的表面,上述这些现象将会影响表面的外观。如果物体表面上的不规则性有着不同的“高度”,那么新的球形波的排列也不再整齐,无法形成平面波阵面。如下图所示。

上图的左侧部分,平面波阵面入射到一个带有粗糙nanogeometry的表面。中间部分,我们看到由于Fresnel-Huygens在物体表面形成的球形波。右侧部分,我们看到在相消干涉与增强干涉发生之后,有些波形成了平面反射波(红色)。其余的波则是衍射波(紫色),根据波长的不同,光波将以不同的方向传播。

正如上图所示,光线将散射至不同的方向。反射的光中,有一部分是镜面反射,例如平面波阵面方向上的反射光。其余光线将基于nanogeometry进行衍射。衍射光与镜面反射光的比例则取决于nanogeometry突起的高度,或者,更准确地说,取决于高度分布的不同。衍射光散播角度则取决于光的波长与nanogeometry突起的比例。可能与我们想的正好相反,如果不规则性越广,那么衍射的散播反而越小。如果不规则性大于100个光波波长,那么衍射光与镜面反射光的夹角将会非常小,小到我们可以直接忽略。不规则性的尺寸越小,反而会造成衍射光的传播越广,直到不规则性的尺寸小于一个光波的波长,之后衍射就会消失。

衍射现象在那些带有“周期性”nanogeometry的物体表面最为明显,因为不断重复的nanogeometry将通过增强衍射来增加衍射光的影响,就会造成“彩虹”的颜色。现实世界中的CD与DVD都有这一类现象。但是衍射同样会发生在“非周期性”的表面,不过其效果并不明显。因此计算机图形学领域一般会忽略这一效果。但是,近期的分析显示,有许多材质会表现出明显的衍射效果。

9.11.2 Models for Thin-Film Interference(薄膜干涉模型)

当光线从绝缘体接触面的顶层与底层分别反射时会发生Thin-film interference(薄膜干涉)这一光学现象。如下图所示,光线入射到薄膜的顶层。除了那些被顶层反射的光,还有一部分光将会发生折射,之后被底层表面反射。那些被顶层反射或者被底层反射的光都有着相同的波,但是由于路径长度不同,会导致这些波的各个阶段会有延迟,因此他们会互相干涉。

这些光会发生增强干涉或者相消干涉,其取决于光的波长以及光在材质内部的路径。由于光在材质内部的路径取决于入射角,最后的结果就是产生彩虹色的变化。

这一现象只会发生在薄膜材质上,这是因为coherence length(相干长度)。这一长度是两个相同的光波能够互相干涉的最大距离,其与光的bandwidth(带宽)成反比。例如,激光有着非常窄的带宽,因此其coherence length非常长。有可能长达数英里,具体取决于激光的类型。如果激光是单色光,那么它的coherence length可能是无限的,但是现实生活中的激光一般有着大于0的带宽。相反,如果光有这非常宽的带宽,那么其波形将会非常混乱。

理论上来说,白色光是所有波长的光的混合,其coherence length为0。但是,基于可见光的光学,人类视觉系统(只会对400-700纳米波长范围内的光有反应)的带宽决定了coherence length,其大约为1 micrometer。所以,大多数情况下,如果别人问你“多少厚度以上的薄膜就不会造成可见的干涉”,那么答案是大约1 micrometer。

薄膜干涉,其类似于衍射效应,其基本被认为是只会发生在肥皂泡泡和油膜上的特殊光学现象。但是,Akin提出薄膜干涉也会发生在许多常见的材质上,并且模拟这一效果能增强渲染的真实性。如下图所示。很明显右侧部分的皮革看上去更真实,薄膜干涉也会影响材质的镜面反射。

实时渲染领域已经开始使用薄膜干涉。Smits与Meyer提出了一种高效的方法用来模拟薄膜干涉中顶层光线的反射路径与底层光线的反射路径。他们发现,最终的颜色主要取决于路径的不同,也就是说,我们可以通过薄膜的厚度,视野角度以及反射率来进行计算。他们的解决办法需要一个由RGB颜色组成的一维列表。该列表的数据可以通过光谱采样来预计算。在使命召唤:无限战争中使用了层级材质系统来模拟薄膜效应。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据