原文:https://zhuanlan.zhihu.com/p/776529221
毛发渲染研究历史演变
在1989年,Kajiya 和 Kay 将Phong模型扩展到毛发绘制,提出了绘制毛发的经验模型——Kajiya-Kay 模型。该模型将毛发简化为一系列细长的圆柱体,并假设光线只在毛发表面发生简单的反射。镜面反射:高光。漫反射:模拟光线在毛发内部的散射,毛发的整体亮度。
Marschner等人在2003年发表了论文《Light Scattering from Human Hair Fibers》,提出了一个基于物理的毛发反射模型,被称为Marschner模型。
传统的毛发渲染模型,如Marschner模型和Kajiya-Kay模型,通常将毛发简化为单层圆柱体,忽略了毛髓质(medulla)的影响。Yan等人在2015年发表的论文《Physically-Accurate Fur Reflectance: Modeling, Measurement and Rendering》针对这一问题提出了一种更为精确和高效的毛发渲染模型,即将每根毛发建模为两个同心圆柱体。其建模结合了完整的毛发双向散射分布函数(BSDF),精确地描述光线在毛发中的多路径传播和散射行为。此外,为了确保物理真实性,进行了大量物理测量工作,包括九种不同的毛发样本,最后开放了数据库的部分反射参数供艺术家调整。为了提高渲染效率,Yan[2015]结合了[Zinke and Weber 2007]近场散射(R, TT, TRT)的考虑,对常见的散射路径进行预计算,存在Lut中,实现了单毛纤维的高效光线散射计算。对于渲染管线的优化,Yan[2015]主要集中在双圆柱模型上。
从Marschner[2003]到d’Eon[2011]和Chiang[2016]的拓展模型,虽然不断增加毛发的参数(如d’Eon[2011]的方位角粗糙度数值积分、Chiang[2016]的近场方位角散射)使得渲染精度增加,但是其复杂的散射路径和大量的预计算限制了其实用性、实时性。Yan[2015]提出的双圆柱毛发反射模型也存在计算成本高、实用性低的问题。因此Yan[2017]提出了一个简化版本,通过解析的方式实现快速积分并且大幅减少Lobes数量。
上面这幅图中,清晰的指出了,Marschner[2003]使用的是纵向-方位角的分解表示,将复杂的三维光散射过程简化为两个较为独立的维度。纵向散射函数(Longitudinal Scattering Function)描述光线沿着毛发纤维轴线的传播和散射。方位角散射函数(Azimuthal Scattering Function)描述光线在毛发纤维横截面(垂直于纤维轴线的平面)内的散射。这个模型考虑T、TT和TRT。在d’Eon[2011]修正了能量守恒问题。Yan[2015]的双圆柱模型(毛小皮和毛髓质)复杂了光线交互,考虑了R、TrT、TtT和TrRrT。Yan[2017]中引入了统一的折射率(IORs),化简光路传播,不再区分不同材料的折射率,即R、TT、TRT、TT^s和TRT^s(^s表示化简路径)。Yan[2017]指出统一IORs实际上并不会显著影响渲染结果,依旧能保持较高的真实性,原因是毛皮质(cortex)和毛髓质(medulla)之间的折射率非常接近。
Yan[2017]为了解决以前毛发渲染中计算复杂度较高的问题,提出了近场与远场的划分,并引入了分层渲染策略(Layered Rendering Strategy)。近场主要是光线在单根毛发上的精细散射和反射。此区域需要高精度的物理模型渲染毛发,如涉及干涉、衍射等波动光学现象。远场则是描述光线在大量毛发纤维集体作用下的整体散射效应。在此区域,单根毛发的微观结构影响可以被平均化,更加适合采用统计/近似等方法计算,优化提高渲染效率。划分标准:基于光与毛发纤维之间的距离和毛发纤维的尺寸。也就是设定一个Threshold,当光线与毛发的距离小于该阈值时,归类为近场;反之,归类为远场。分层渲染的流程首先是光线追踪,判断近场抑或是远场,近场结合预计算散射表用Mie散射理论和Fresnel方程算反射透射,远场用统计散射函数+预计算散射表+MC积分降低复杂度,最终两者叠加,并且做归一化处理。这里按照论文的三点来详细讲讲:
- Simple Reflectance Model(简单的反射模型)Yan[2015]的模型虽然引入了毛髓质(medulla),并考虑了更多的物理细节,但仍然具有较高的计算复杂度,特别是在近场与远场的转换上。Yan[2017]提出简化的分层反射模型,保留了反射的关键物理现象,减少了不必要的复杂光散射路径。他们将反射描述为三个主要的光散射路径(R:光线在毛小皮表面的镜面反射、TT:光线透过毛小皮层,并在内部散射后从另一侧透射出来、TRT:光线进入毛发后在内部反射一次,最终透射出来)。最后结合简化的双向散射分布函数(BSDF)捕捉路径的反射,减少了计算中所需的lobes(通常用于描述不同散射方向的分布曲线)。相比于之前的模型,计算过程中的lobes从原来的9个减少到5个。
- Improved Accuracy and Practicality(提高的精度和实用性)高精度模型(如Marschner模型、Yan[2015]等)需要复杂的数值计算和大量的预计算数据,因此难以在实时应用中实现。而低精度的经验模型则缺乏足够的物理真实性。于是在Yan[2017]中,做了很多改进。尽管模型简化了光散射路径,但通过结合物理现象(如毛小皮的多层反射结构、各向异性散射等),保持了毛发和毛皮的物理精度。通过对光的纵向和方位角散射进行合理简化,该模型在精确性上优于传统的经验模型。此外就是近场与远场的过渡处理。传统模型往往无法平滑地处理近场和远场之间的光学过渡问题。Yan等人引入了一个近场-远场的解析解决方案,在光线靠近毛发纤维时精确模拟反射,同时在远场时快速近似光线的整体反射行为。使得渲染效率可用于实时渲染。
- Analytic Near/Far Field Solution(解析的近场/远场求解)近场(光线与单根毛发纤维之间的短距离交互,即散射行为)和远场(光线与大量毛发纤维之间的远距离集体效应)的处理存在巨大差异。为了实现近场和远场的无缝过渡,作者使用了解析积分方法,而非繁琐的数值积分。解析积分能够直接计算反射函数,不需要通过复杂的数值求解或预计算,极大地减少了计算时间。
- Significant Speed Up(显著加速)
- 减少用于描述散射路径的lobes数量;
- 解析积分和预计算结合;
- 采用了简化的BSDF和解析的反射计算公式,将光线追踪和反射计算在GPU上并行化,模型的渲染速度比之前的方法提升了6-8倍。
简单总结一下,Yan[2017]提出的反射模型效果和性能都不错,通过统一皮层和髓质的IOR,使得模型只需要5个lobes就可以表示皮毛的复杂散射,利用张量近似最小化存储开销。在这个模型的基础上,提出远近场的解析积分,将模型拓展至多尺度渲染。想要在实时渲染中实现BCSDF模型是非常简单的,当前已经有不少实现方式了,并且已经应用于影视行业。[The Lion King (HD). 2017 movie] (2019 Oscar Nominee for Best Visual Effects)
XIA[2023]提出了基于波动光学的毛发反射模型。传统的毛发渲染模型大多基于几何光学近似,这些模型在处理较大的毛发纤维时效果较好,但在细微光学现象(如毛发上的彩色光点,即glints)方面表现欠佳。这些散射效应,包括反射、透射和多次散射,难以通过简单的几何光学模型准确描述。随着毛发纤维的直径接近或小于光(可见光)波长时,波动光学效应变得越来越重要,而几何光学模型则无法捕捉这些效应。
毛发的波动光学效应,如光的干涉、衍射等计算量非常大。波动光学模拟需要计算电磁场的传播,而不仅仅是光线的路径。毛发、皮毛具有高度不规则的微观结构,这些结构会进一步影响光的散射。基于几何光学的方法无法处理这些波动现象,而全波模拟需要高昂的计算资源。
早在XIA[2020]就已经提出了利用波动光学准确描述光与纤维的相互作用,用边界元法(Boundary Element Method, BEM)模拟光线在任意截面的纤维散射。并且XIA[2020]指出由于衍射效应,纤维表现出极强的前向散射效应。因此波动光学效应应该让光线专注集中前向散射的方向。还指出了,小的纤维散射效应显著依赖光的波长,导致强烈的波长散射。此外波动场带来的奇异性软化现象也是决定真实焦散效果的关键。为了BEM模拟的计算量可控,纤维的形状理想为具有规则的横截面形状。但是Marschner[2003]指出毛发表面的不规则对毛发外观有重要的影响,在波动光学中这样的效应是否显著仍然是一个需要探讨和解决的问题。
传统的几何光学方法基于光线追踪(Ray Tracing),通过模拟光线在毛发纤维上的反射和折射来预测光的传播路径。然而,这种方法在处理波长与纤维尺寸相当的光波时显得不足,无法捕捉到由于衍射产生的复杂光学效应。实际测量中,纤维散射表现出一些尖锐的光学特征,这是由于光的衍射效应造成的。包括黑色狗毛中表现的略微颜色偏移,也是由于光的干涉和衍射引起的。
为了处理这些几何光学无法解释的现象,XIA[2023]开发了一个基于物理光学近似(Physical Optics Approximation,PO)的三维波动光学模拟器,并且利用GPU加速计算效率。通过八叉树结构来处理空间。该模拟器具有一定的通用性,能够处理任意的三维几何形状,也就是说可以处理到纤维表面的微观结构。
但是XIA[2023]中指出,因为计算复杂度高的原因,直接将这个模拟器运用到当前主流渲染框架是不现实的。因此需要先将该模型迁移到现有的毛发散射模型中,然后加入一个基于基础衍射理论(elementary diffraction theory)的衍射lobe。最后提出了一个基于随机过程的调制方法来捕捉散斑(optical speckle)效应,尽管是程序噪声但是依然与物理模拟结果一致,视觉效果与现实相近。
XIA[2023]将当前的毛发/纤维渲染分为两种,一种是传统的Ray-based Fiber Models(基于光线的纤维模型),另一种则是Wave-based Fiber Models(基于波动光学的纤维模型)。
Linder[2014]提出了一种解析解用于处理圆柱形纤维的散射行为,但是只适用于完美的圆形截面,无法处理复杂的毛发表面结构。XIA[2020]通过二维波动光学渲染研究了任意横截面形状的纤维散射行为,展现出衍射效应的表现,但是该论文假设前提是完美的挤出结构,即纤维表面是规则的。Bennamira&Pattanaik[2021]提出了一个混合模型,在只有前向衍射的情况下使用波动光学求解,在其他散射模式中使用传统的几何光学。但是XIA[2023]进一步考虑了光线的入射纵向角依赖性。
论文最后将程序噪声拟合到波动光学中的散斑模式,通过统计特性拟合,产生非常真实的效果。
XIA[2023]还提到了电磁计算工具(Computational Electromagnetics Tools)在处理光线和纤维复杂交互时的重要作用,尤其是使用像是BEM等数值方法时。计算电磁学是用于研究电磁现象的计算方法,因为光是一种电磁波,光学中许多现象可以通过电磁学的工具来分析。CEM在光学中经常用于计算光与物体表面(如毛发纤维)之间的交互。CEM的常见算法有:
- 有限差分时域法(Finite-Difference Time-Domain, FDTD):一种通过空间和时间离散化求解麦克斯韦方程的数值方法,最早由Kane Yee于1966年提出,是一种直接的时域方法Kane Yee[1966], Taflove[2005]。
- 有限元法(Finite Element Method, FEM):通过将求解区域划分为有限个元素,用来求解复杂几何结构中的电磁场分布Jin[2015]。
- 边界元法(Boundary Element Method, BEM):也称为矩量法(Method of Moments, MoM),这是一种通过只处理物体表面的电磁场来减少计算量的数值方法Gibson[2021], Huddleston[1986], Wu[1977]。
虽然CEM有很多加速算法,比如Song[1997]的多层快速多极子算法(Multilevel Fast Multipole Algorithm, MLFMA),但是在毛发皮毛模拟中,提升依旧杯水车薪。
由于全波模拟计算成本高昂,因此XIA[2023]提出物理光学近似(PO)来简化例如毛发纤维表面的反射和衍射过程。
物理光学平面模型是物理光学近似(Physical Optics, PO)的一种应用,它专门用于模拟光在平面或接近平面的表面上的散射和衍射效应。Beckmann-Kirchhoff[1987]和Harvey-Shack[1979]可以有效计算粗糙表面的散射光。He[1991], Kajiya[1985]的高斯随机表面、Stam[1999]的周期性静态表面和Werner[2017]的划痕表面都利用了物理光学近似来处理表面反射和衍射。
对于更加复杂的衍射,Krywonos[2006], Krywonos[2011]则提出了改进粗糙表面衍射的处理方法。Holzschuch, Pacanowski[2017]提出了双尺度微表面模型,结合反射和衍射来模拟粗糙表面。最近Falster[2020]结合了Kirchhoff标量衍射理论和路径追踪处理二次反射、散射。Yan[2018]利用物理光学渲染粗糙表面的镜面微几何结构。
和平面表面不同的是,纤维表面是闭合的曲面,毛发纤维的几何形状对光的相互作用更加复杂。除了反射和散射,还需要处理前向衍射散射和大范围阴影效应。
XIA[2023]还讨论了散斑(speckle)效应和程序噪声(procedural noise)在毛发渲染中的应用。
Speckle是当光线和粗糙的表面相互作用时,产生的具有颗粒感结构的图像或衍射图案。其统计特性已经被广泛研究。当相干光(如激光)照射到粗糙表面或通过散射介质时,产生的一种随机的明暗斑点图案。通俗地讲,就像你用激光笔照射在一堵粗糙的墙上,原本应该是一个光滑的光点,却会看到一个颗粒状、闪烁的图案。由于光在微小的表面不平整处发生了散射,不同路径的光波相互干涉,有的加强(形成亮斑),有的相互抵消(形成暗斑),从而产生了这种斑点状的图案。
之前的研究已经探索了如何通过蒙特卡洛方法来模拟体积散射中的散斑效应Bar[2019, 2020]。然而,这些模型主要适用于均匀介质(homogeneous media),不适用于毛发纤维等异质结构。Steinberg, Yan [2022]研究了平面粗糙表面的散斑渲染。然而作者指出,纤维表面的散斑效应与平面表面不同,表现出不同的统计特性。
因此XIA[2023]提出了精确捕捉纤维散斑模式统计特性的渲染模型。通过研究纤维表面的特殊几何结构和散斑分布,来模拟毛发纤维的散射效应,提供更优质的散斑效果。
需要注意的是,薄膜干涉(Thin-film interference)和散斑效应(Speckle Effect)虽然都是由光的干涉现象引起,但它们在物理机制、视觉表现以及在计算机图形学中的渲染方法上存在显著差异。薄膜干涉的蒙特卡洛方法,如随机薄膜厚度采样,可以借鉴到散斑效应的随机斑点生成中,以提高渲染的真实感。层次化的厚度采样、预计算干涉图案等近似算法也可以相互借鉴。薄膜干涉往往涉及不同尺度的光波干涉,散斑效应也涉及微观表面结构的多尺度散射。
两者之间,薄膜干涉渲染复杂度相对较低,可以充分使用预计算规避实时计算的负担。但是散斑效应具有高度随机、统计特性,需要处理大量随机干涉的路径,尤其是模拟毛发这种异质结构。目前的研究如XIA[2023]正致力于提高其效率,但相比薄膜干涉仍有较大差距。
XIA[2023]使用Cook, DeRose[2005]的Wavelet带限噪声控制处理毛发纤维的微观几何变化。这种噪声不同于常规的程序噪声,例如Perlin[1985], Olano[2002], Perlin, Neyret[2001]等,Wavelet噪声的一个显著优点是其统计分布可以计算和控制。
XIA[2023]的实用波动光学纤维散射模型的优势在于其逼真的彩色高光(glints)。以往的几何光学模型通常假设纤维表面是光滑的介电柱体,没有考虑到光波在表面不规则结构上的复杂交互。在实际测试中,XIA[2023]的模型在渲染时间上表现良好,能够在生产环境中应用,并且相比于传统模型生成的光学效果更加细腻和真实。
XIA[2023]是一个重要的突破,构建了首个三维波动光学纤维散射模拟器。以往的纤维模型(包括早期的波动光学模型如Xia等人2020年)大多假设纵向和方位角方向上的散射是可分离的,这大大简化了计算。然而,作者的模拟结果显示,高光在纵向和方位角上是不可分离的,这是之前的模型无法准确处理的现象。该模拟器还预测了散斑模式(speckle patterns),这是之前所有基于几何光学和波动光学的纤维散射模型都没有捕捉到的现象。并且以往的存储和查找模拟生成的5维散射分布的方法是通过表格法(tabulation),特别消耗内存。因此用程序噪声直接取代一个五维的表格。
XIA[2023]目前只模拟了一次反射模式中的散斑效应,更高阶的反射模式仍然在研究中。并且浅色的毛发可能需求更高的计算要求才能完美模拟。该研究的波动光学纤维散射模型可以轻松与之前的纤维模型结合。
References
Zotero一键生成,需修正。
[1] J. T. Kajiya and T. L. Kay, “RENDERING FUR WITIt THREE DIMENSIONAL TEXTURES,” 1989.
[2] S. R. Marschner, H. W. Jensen, and M. Cammarano, “Light Scattering from Human Hair Fibers,” 2003.
[3] A. Zinke and A. Weber, “Light Scattering from Filaments,” IEEE Trans. Visual. Comput. Graphics, vol. 13, no. 2, pp. 342–356, Mar. 2007.
[4] L.-Q. Yan, C.-W. Tseng, H. W. Jensen, and R. Ramamoorthi, “Physically-accurate fur reflectance: modeling, measurement and rendering,” ACM Trans. Graph., vol. 34, no. 6, pp. 1–13, Nov. 2015.
[5] L.-Q. Yan, H. W. Jensen, and R. Ramamoorthi, “An efficient and practical near and far field fur reflectance model,” ACM Trans. Graph., vol. 36, no. 4, pp. 1–13, Aug. 2017.
[6] M. Xia, B. Walter, C. Hery, O. Maury, E. Michielssen, and S. Marschner, “A Practical Wave Optics Reflection Model for Hair and Fur,” ACM Trans. Graph., vol. 42, no. 4, pp. 1–15, Aug. 2023.
Glints效果探究
传统的基于几何光学的渲染方法,例如Yan[2014, 2016]使用双向反射分布函数(BRDF)来模拟镜面反射表面,存在一定的局限性。
Yan[2014, 2016]指出,传统BRDF模型通常使用光滑的法线分布函数(NDF),假设微平面是无限小的。但实际上,现实中的表面往往具有明显的几何特征,例如微米级别的凹凸、金属漆中的片状物等,这些特征在强定向光源(如日光)下会引发显著的Glints效果。Yan等人通过高分辨率的法线贴图,更精确地模拟这些小尺度的表面几何特征,并提出了一种新的方法来有效渲染这些复杂的镜面高光。
传统的均匀像素采样技术在捕捉这些小范围内的高光时方差过大,导致渲染效率低下,且无法有效处理由于光路复杂性引起的高光分布不均现象。因此Yan[2014, 2016]引入了基于法线分布的搜索和针对性采样。
在毛发渲染中可以观察到毛发和毛皮在强定向光源照射下会显示出颜色变化的闪烁效果。
XIA[2023]中使用光学散斑理论(Optical Speckle)来模拟高光噪声,加入了基础衍射理论的衍射瓣(diffraction lobe)处理光在毛发等纤维结构表面的衍射效应,进而渲染出彩色高光效果(colored glints)。
XIA[2023]第八章提到,在阳光下可以很容易观察到Glints现象。这些颜色效应虽然在远距离观察时显得微妙,但在近距离观察时能够显著增强毛发的外观效果,有时还会导致纤维的色调发生轻微变化。
在图9中,XIA[2023]的模型在浅色毛发上也能产生彩色闪光效果。相比于深色纤维,浅色毛发的闪光更加细微,因为多次散射会使颜色平均化,导致颜色对比度降低。与XIA[2020]相比,XIA[2023]不仅更好地处理了波长相关的反射,还提升了对毛鳞片角度的处理能力,能够捕捉到由毛鳞片倾斜引起的高光移动。
References
[1] L.-Q. Yan, M. Hašan, W. Jakob, J. Lawrence, S. Marschner, and R. Ramamoorthi, “Rendering glints on high-resolution normal-mapped specular surfaces,” ACM Trans. Graph., vol. 33, no. 4, pp. 1–9, Jul. 2014.
[2] L.-Q. Yan, M. Hašan, S. Marschner, and R. Ramamoorthi, “Position-normal distributions for efficient rendering of specular microstructure,” ACM Trans. Graph., vol. 35, no. 4, pp. 1–9, Jul. 2016.
全波参考模拟器
https://dl.acm.org/doi/10.1145/3592414
1. Intro
这篇paper讨论的是渲染黑狗毛论文「A Practical Wave Optics Reflection Model for Hair and Fur」中用来生成高精度光散射模拟数据的物理波模拟三维波动光学纤维散射模拟器的理论基础。
计算粗糙表面的光反射是一个重要课题。例如毛发纤维的微小特征等小尺度的几何结构,对光的反射行为有显著影响。BRDF描述的是给定入射、出射方向表面如何反射光线。几何光学的局限已经重复多次,这种将光看作直线传播的模型在微观结构与光波长相近时则无法捕捉到光的波动性。
使用波动光学来近似衍射的理论模型有[Beckmann and Spizzichino 1987]的Beckmann-Kirchhoff theory, [Krywonos 2006]的Harvey-Shack模型。前者描述粗糙表面的光反射行为,后者则是一系列基于波动光学的模型,更加精确地描述光在复杂表面的散射行为。
现有的模型都是针对大面积表面的平均反射行为,忽略局部的细节变化。Yan[2016, 2018]的则是能够在空间的不同区域捕捉微观结构对光反射的变化。即使是基于电磁波传播的模型,也由于计算复杂性,仍然需要进行一定的近似处理。这些方法其实并不是ground truth的。
为了准确捕捉干涉效应,XIA[2023]目标开发一个参考模拟工具,忠实按照麦克斯韦方程组模拟光的传播。唯一的近似仅是数值离散化,最终生成传统的双向反射分布函数(BRDF)作为输出。而这个模拟器则是真正做到了ground truth。
也就是说这个模拟器能够准确模拟光的波动特性,包括干涉、衍射和多重散射等等。模拟器中运用到的近似也仅仅是网格划分和数值积分误差。
通过高精度的全波模拟,能够生成具有高角度和空间分辨率的BRDF数据。
同时,模拟器能够处理大规模的表面区域(如60 × 60 × 10波长)。比方说使用波长约500纳米的可见光,60波长就相当于30微米。也就是说,模拟器的计算是基于光波长尺度进行的,在相同的真实物理尺寸下,不同波长的光会对应不同的离散化单元数量。波长越大(例如红光的波长比蓝光大),对于同样的物理尺寸,所需的离散化单元(如网格划分)就会相对更少,因此处理起来的计算量会相对更小,处理速度也可能更快。
具体地,将表面表示为一个高度场,每个网格点对应一个高度值,且用四边形作为基元。
对于散射场,用边界积分公式(Boundary Integral Formulation)将电磁波的散射问题转化为仅在表面边界上求解的积分方程,关键实现方法是边界元方法(BEM)。再用基于三维快速傅里叶变换(3D FFT)的自适应积分方法(Adaptive Integral Method, AIM)加速边界积分的计算过程。
并且利用GPU加速并行处理大规模的表面散射问题。
并且paper中采用了一种组合小规模模拟结果来表征表面双向散射行为。
相关工作
基于波动光学的反射模型
老生常谈的几何光学 vs 波动光学。本文主要对比表面散射模型。几何光学的经典模型包括:Cook-Torrance模型 [Cook and Torrance 1982]、Oren-Nayar模型[Michael 1994]。波动光学这边,主要是用物理光学近似(Physical Optics Approximations)来简化全波方程。也就是黑毛狗中的一阶近似(单次散射)来估计表面反射。经典模型包括Beckmann-Kirchoff理论和Harvey-Shack模型,它们使用标量形式的近似方程来模拟波动光学效应。它们被广泛应用于各种表面类型的反射估计,比如高斯随机表面、周期性表面等。但是这些方法的计算结果常常是空间上的平均结果,没办法进行高分辨率的细节反射。
- He等人(1991)和Lanari等人(2017)的高斯随机表面模型。
- Dhillon等人(2014)、Stam(1999)以及Toisoul和Ghosh(2017)的周期性表面模型。
- Levin等人(2013)的多层平面表面模型。
- Dong等人(2016)的表面数据表模型。
- Werner等人(2017)对划痕表面的研究。
此外,物理光学近似还被用于估计某些特殊表面的空间变化外观,例如:
- Yan等人(2018)的表面数据表
- Steinberg和Yan(2022)的随机表面模型。
一些混合表面模型将物理光学模型应用于某些表面成分(例如小尺度粗糙度),而对较大尺度使用几何光学模型。这些混合模型的应用包括:
- Falster等人(2020)和Holzschuch与Pacanowski(2017)的表面粗糙度模型。
- Belcour和Barla(2017)的薄膜干涉模型。
- Guillén等人(2020)的悬浮颗粒模型。
此外,物理光学模型还被用于处理更长距离的表面间效应。例如:
- Cuypers等人(2012)和Steinberg等人(2022)的研究探索了这些长程效应。
基于波动光学的散射方法,如Lorenz-Mie理论和T矩阵法,也被用于体积散射的计算,例如:
- Bohren和Huffman(2008)及Mishchenko等人(2002)的理论。
- Frisvad等人(2007)和Guo等人(2021)的体积散射应用。
此外,Sadeghi等人(2012)和Shimada与Kawaguchi(2005)提出的复杂值光线追踪技术被应用于渲染自然现象和结构色效应。然而,表面间的长程效应和体积散射等问题目前超出了本研究的范围。
计算电磁学(CEM)的数值计算方法
数值计算有很多方法:
- Oskooi等人(2010)提出了基于差分求解麦克斯韦方程组的数值方法有限差分时域法(FDTD)。FDTD已经被用于预测波长尺度结构的外观(如Auzinger等人(2018),Musbach等人(2013)的研究)。但是随着模拟区域增加,开销相当大!
- 有限元法(FEM)是一种广泛用于求解偏微分方程的数值方法,也可以用于电磁学问题中。它通过对模拟域的三维离散化来解决问题。与FDTD类似,计算量太大,更加不用说用于实时渲染。
- Gibson(2021)详细介绍了边界元法(BEM)。BEM的主要优势在于,它通过将散射问题转化为物体表面的积分方程,降低了离散化的维度。在FDTD和FEM中,整个三维空间都需要离散化,而BEM只需要对物体的表面进行离散化,这显著降低了计算的维度和复杂性。
论文选择了BEM。主要原因是其拓展性。有利于复杂表面结构的处理。
加速BEM有很多方法:
- Liu和Nishimura(2006),White和Head-Gordon(1994)提出的快速多极子法(FMM)。
- Bleszynski等人(1996)提出的基于三维快速傅里叶变换(3D FFT)的自适应积分法(AIM)。
- Liao等人(2016),Pak等人(1997)提出的稀疏矩阵规范网格法(SMCG)。
论文选择了AIM。原因是AIM适合处理一个轴向尺寸比较小的区域。
结果
BRDF值以半球图的形式显示。使用了标准的光谱数据到XYZ到RGB的转换,生成了彩色的BRDF图。
即随着高度场分辨率的增加,BRDF输出逐渐趋于稳定。在高度场的每波长8个样本的分辨率已经足够产生准确的结果。
通过与现有波动光学模型的比较,本文的模拟器精度最高,能够处理复杂的光学现象和几何结构,适合高精度需求的场景,适用于多次反射、干涉和复杂表面。然而,计算成本较高,是效率与精度间的折衷。
- OHS和GHS模型计算简单,适合平滑表面和中等粗糙度表面,但在大入射角和复杂表面上误差较大。GHS相比OHS在大角度下精度有提升。
- 基尔霍夫模型精度相对较高,但是只能在一阶的范围保持精度。
- 切平面方法计算高效,适合较为简单的表面几何。复杂的就不行。
- 本文的精度最牛,适合高精度场景。
相干区域的比较,随着照明相干度的增加,BRDF的分辨率和细节变得更加丰富。相干度较高时,BRDF中包含更多的高分辨率细节。
另外,论文还展示了论文中用于加速BRDF计算的光束引导技术(beam steering)。如图14,表面沿一个方向呈镜面反射,而在另一个方向上则表现出回射效应。论文计算了一系列逐渐变化的入射角的BRDF值。如下图所示。
每个入射方向上的BRDF图像缩减为一条细线段。图15中的对比显示,Tangent Plane无法准确建模表面的二阶反射(即经过多次反射后出射的光线)。但是如果表面光滑,用Tangent Plane还是非常快速准确的。
此外,论文将模拟器的结果与实际表面的BRDF测量进行了对比,特别是在多重反射效应显著的表面上。如图17所示,上面是实际测量,中间是论文的理论模型,下面是Tangent Plane。
你可能会问为什么差这么多?论文中使用的是理想化的几何模型,而实验中的表面可能具有一些微小的几何偏差,这可能会影响反射的精确性。一句话概括,就是论文的模拟器可以描述更加高阶的反射了!
未来工作
当处理更复杂、结构化表面时,本文的模拟器能更加精确地模拟光在表面上的传播和散射行为。
未来工作方向当然就是降低计算开销,同时保证精度。
然后将这个BRDF的近似模型的处理面积扩大。
同时,该论文的模拟器可以作为一个基准参考。
References
A Full-Wave Reference Simulator for Computing Surface Reflectance
Petr Beckmann and Andre Spizzichino. 1987. The scattering of electromagnetic waves from rough surfaces. Artech House.
Andrey Krywonos. 2006. Predicting Surface Scatter using a Linear Systems Formulation of Non-Paraxial Scalar Diffraction. Ph. D. Dissertation. University of Central Florida.
Ling-Qi Yan, Miloš Hašan, Bruce Walter, Steve Marschner, and Ravi Ramamoorthi. 2018. Rendering Specular Microgeometry with Wave Optics. ACM Trans. Graph. 37, 4 (2018).
Ling-Qi Yan, Miloš Hašan, Steve Marschner, and Ravi Ramamoorthi. 2016. Positionnormal distributions for efficient rendering of specular microstructure. ACM Transactions on Graphics (TOG) 35, 4 (2016), 1–9.
R. L. Cook and K. E. Torrance. 1982. A Reflectance Model for Computer Graphics. ACM Trans. Graph. 1, 1 (jan 1982). https://doi.org/10.1145/357290.357293
Michael Oren and Shree K. Nayar. 1994. Generalization of Lambert’s Reflectance Model (SIGGRAPH ’94). https://doi.org/10.1145/192161.192213
发表回复