标签: Hair Rendering

  • 波动光学毛发渲染:相关论文汇总整理(一)-学习笔记-3

    波动光学毛发渲染:相关论文汇总整理(一)-学习笔记-3

    声明:这一篇就是纯纯的垃圾文章了,当作前两篇文章的补充。随便整理的供自己复习用。所有标题都可以跳转论文主页。专有词尽量都中英文给出了。若有错误恳请指正万分感谢。

    原文:https://zhuanlan.zhihu.com/p/830617613

    目录

    1. [Xia 2023] A Practical Wave Optics Reflection Model for Hair and Fur
    2. [Xia 2023] Iridescent Water Droplets Beyond Mie Scattering
    3. [Aakash 2023] Accelerating Hair Rendering by Learning High-Order Scattered Radiance
    4. [Kneiphof and Klein 2024] Real-Time Rendering of Glints in the Presence of Area Lights
    5. [Huang 2024] Real-time Level-of-detail Strand-based Hair Rendering
    6. [Xing 2024] A Tiny Example-Based Procedural Model for Real-Time Glinty Appearance Rendering
    7. [Zhu 2022] Practical Level-of-Detail Aggregation of Fur Appearance
    8. [Clausen 2024] Importance of multi-modal data for predictive rendering
    9. [Shlomi 2024] A Free-Space Diffraction BSDF
    10. [Kaminaka 2024] Efficient and Accurate Physically Based Rendering of Periodic Multilayer Structures with Iridescence
    11. [Yu 2023] A Full-Wave Reference Simulator for Computing Surface Reflectance
    12. [Shlomi 2022] Towards Practical Physical-Optics Rendering
    13. [Huang 2022] A Microfacet-based Hair Scattering Model
    14. [Shlomi 2021] A Generic Framework for Physical Light Transport
    15. [Shlomi 2024] A Generalized Ray Formulation For Wave-Optics Rendering
    16. [Shlomi 2021] Physical Light-Matter Interaction in Hermite-Gauss Space
    17. [GUILLÉN 2020] A general framework for pearlescent materials
    18. [Werner 2017] Scratch iridescence: Wave-optical rendering of diffractive surface structure
    19. [Fourneau 2024] Interactive Exploration of Vivid Material Iridescence using Bragg Mirrors
    20. [Chen 2020] Rendering Near-Field Speckle Statistics in Scattering Media
    21. [Kajiya and Kay 1989] Kajiya-Kay Model
    22. [Marschner 2003] Light Scattering from Human Hair Fibers
    23. [Benamira 2021] A Combined Scattering and Diffraction Model for Elliptical Hair Rendering
    24. [Zinke 2008] Dual Scattering Approximation for Fast Multiple Scattering in Hair

    [Xia 2023] A Practical Wave Optics Reflection Model for Hair and Fur

    波动光学、毛发渲染、表面电磁计算远散射场

    利用波动光学渲染毛发。计算表面电磁场得到散射场,再加入噪声模拟Glints效果。

    我发现这个系列的作者颜值都好高。(划掉)

    img

    1. 背景

    毛发渲染一直以来主要基于光线追踪技术,无法处理波动光学效应(Wave Optics),例如毛发表面强烈的前向散射和微妙的颜色变化。之前的研究【Xia et al. 2020】证明了衍射效应在纤维的颜色和散射方向上起到了关键作用。然而,这项研究并没有考虑如表面粗糙度和纤维表皮层的微观结构(例如倾斜的角质鳞片)。

    2. 动机

    为了弥补现有的光线光学模型缺少对衍射和前向散射的处理(例如Glints现象)。

    尽管全波模拟可以得到非常细致的散射数据,但是计算量仍然太高。必须通过某种方式加速或简化,以实现大规模场景中的毛发或皮毛渲染。

    想要开发一种能够高效处理各种纤维几何变化的模型。

    3. 方法

    毛发建模是基于毛发的扫描电子显微镜(SEM)图像。

    用「WAVE SIMULATION WITH 3D FIBER MICROGEOMETRY」计算粗糙纤维表面的反射和衍射。即PO。

    引入了散斑理论来分析散射模式的统计特性,用噪声来加速。

    [Xia 2023] Iridescent Water Droplets Beyond Mie Scattering

    波动光学、虹彩效应、水面水滴 Quetelet 散射模型

    结合 Mie 散射、Quetelet 散射(光干涉)以及水滴动态变化,逼真地渲染出水面上和蒸汽中彩虹般的水滴色彩效应,超越了传统的单一 Mie 散射模型。

    img

    1. 背景

    虹彩现象在自然界中很常见,尤其是在水滴、雾气和蒸汽等情况下。一般可以通过Mie散射来解释。Mie 散射描述了当光线遇到与波长相当的球形颗粒时发生的散射效应,是目前用于模拟水滴、云层、雨雾等自然现象的重要理论之一。

    然而,尽管 Mie 散射能够解释孤立水滴的光学特性, Mie 散射不能完全解释诸如水面彩虹色水滴和蒸汽中复杂的彩虹图案等现象。现象不仅依赖于单个粒子如何散射光线,还依赖表面反射、干涉效应以及颗粒大小的动态变化。

    2. 动机

    Mie 散射只能处理孤立的光散射现象,而无法解释更复杂的光学干涉效应。

    准确模拟这些自然现象能够极大提升图像渲染的真实性和观感。

    现有的计算机光学模型和渲染方法大多局限于 Mie 散射,无法解释光线在多颗粒环境下的交互现象,比如水滴之间或水滴与表面之间的光干涉和反射。

    3. 方法

    用「水面上的 Quetelet 散射模型」来解释水面漂浮水滴产生的彩虹色效果。通过建立经验模型,使用热成像技术将温度与水滴的尺寸和高度相关联。使用 Quetelet 散射相函数和 BRDF(双向反射分布函数)来渲染粒子群和水面。

    开发了一个水滴生长和蒸发模型,模拟水滴在蒸汽中的动态变化。与 Mie 散射结合,利用非均匀尺寸的水滴来模拟蒸汽中的彩虹色变化。为了提高渲染效率,采用了基于运动模糊的加速算法,相比于传统方法提升了 10 倍的计算速度。

    [Aakash 2023] Accelerating Hair Rendering by Learning High-Order Scattered Radiance

    毛发渲染、MLP、加速毛发散射

    结合了小型多层感知器(MLP,Multilayer Perceptron)的在线学习毛发高阶散射辐射(higher-order scattered radiance online)的方法(这个应该如何翻译?),在路径追踪(path tracing)框架下显著加速了毛发渲染,减少了计算时间并且只引入了少量偏差。

    img

    1. 背景

    毛发的多次散射(multiple scattering)非常复杂,特别是在路径追踪(path tracing)过程中,由于需要模拟光线在毛发之间的多次散射,导致难以收敛。

    2. 动机

    开发一种方法,在提升计算效率的同时,保持对多次散射效果的高质量模拟。

    现有技术中,一些方法对场景或光照做出简化假设。该论文希望提出一种不对场景做任何假设的通用方法。

    3. 方法

    使用一个小型多层感知器(MLP,Multilayer Perceptron)来在线学习高阶散射辐射(learning higher-order scattered radiance online),这个 MLP 网络在渲染过程中实时学习毛发的散射特性,不依赖于预先计算的表格或模拟。

    在路径追踪框架中集成了 MLP,用来推测和计算高阶散射辐射贡献。

    渲染器的偏差和速度(renderer’s bias & speedup)可以实时调节,以便在计算效率和渲染质量之间找到最优平衡。

    [Kneiphof and Klein 2024] Real-Time Rendering of Glints in the Presence of Area Lights

    加速区域光源Glints、微表面模型、实时渲染

    在区域光源(area lights)下渲染闪光(glints)效果,通过结合线性变换余弦(LTC,Linearly Transformed Cosines)和基于二项分布的微表面计数模型,实现实时渲染。

    img

    1. 背景

    许多现实材料(如金属、宝石等)具有闪闪发光(Glints)的外观,效果源于微表面的反射。然而闪光是离散现象,涉及波动光学模拟计算量太大。

    以往的研究大多集中在使用无穷小的点光源来渲染闪光效果,对于像太阳这样远距离的光源来说这是合理的简化,但现实中大多数光源本质上都是区域光源。现有技术未能有效处理区域光源下的闪光渲染。

    2. 动机

    处理区域光源下的闪光(glint rendering under area lights)。面积光源(例如通过窗口照射进房间的灯光)是常见的光源类型,如何在这种光源下高效地渲染闪光效果是一个尚未完全解决的问题。希望开发一种方法,能够在面积光源下准确渲染闪光效果,同时满足实时渲染的需求。

    希望能够轻松集成到现有的实时渲染框架中,且不对已有的面积光源着色方法带来显著额外开销。

    3. 方法

    闪光反射概率估算(estimating glint reflection probability)来计算微表面(microfacet)正确定向以反射来自光源的光线到观察者的概率。大光源通过线性变换余弦(LTC,Linearly Transformed Cosines),小光源用局部常量法(locally constant approximation)。

    基于二项分布的计数模型(binomial distribution-based counting model)来计算反射微表面的数量。

    与现有框架的集成(integration with existing frameworks)。

    [Huang 2024] Real-time Level-of-detail Strand-based Hair Rendering

    毛发渲染、LoD、基于发束、BCSDF

    提出了一种创新的实时基于发束(strand-based)毛发渲染框架,通过无缝的细节层次(LoD,Level-of-Detail)过渡,确保毛发在不同视距下保持一致的外观,并实现显著的渲染加速。

    img

    1. 背景

    在影视和游戏制作中,基于发束的毛发渲染(strand-based hair rendering)因其逼真的外观而越来越受欢迎,但它的计算成本非常高,尤其是在远视距下。

    当前 LoD 方法,从发束到卡片的过渡中容易出现明显的不连续导致的外观不一致。

    2. 动机

    解决动态和视觉不连续性(discontinuity in dynamics and appearance)。现有的从发束到毛发卡片的转化方案在外观和动画表现上有显著差异。论文的目标是实现从远到近无缝的 LoD 过渡,消除过渡时的外观变化,同时保持计算效率。

    3. 方法

    使用椭圆形厚毛发模型(elliptical thick hair model)将多个发束封装在一个椭圆形的体积内。在不同 LoD 下保持毛发簇(hair cluster)的形状和整体结构,从而在视距变化时提供一致的外观。

    椭圆双向曲线散射分布函数(elliptical Bidirectional Curve Scattering Distribution Function, BCSDF)模拟毛发簇内的单次和多次散射现象,适用于从稀疏到密集、从静态到动态的毛发分布场景。

    动态 LoD 调整与毛发宽度计算(dynamic LoD adjustment and hair width calculation)。

    [Xing 2024] A Tiny Example-Based Procedural Model for Real-Time Glinty Appearance Rendering

    Glints、材料自相似性

    一种基于小型样本微结构(tiny example microstructures)的模型,实时渲染glinty的效果,大幅减少了内存占用和计算开销,同时保持了高频反射细节的真实感。

    img

    1. 背景

    复杂微观结构产生的闪光细节能够显著提升渲染的真实感,特别是在金属、宝石等材质上。这些细节通常需要高分辨率的法线贴图(normal maps)来定义每个微观几何形状,然而这类方法对内存需求很高,不适合实时渲染应用。

    2. 动机

    降低内存和计算开销(reduce memory and computational overhead)。

    利用材料的自相似性(leveraging material self-similarity)。观察到许多材质具有独立的结构特征和自相似性,通过小型样本来隐式表示复杂微结构从而降低内存需求。

    3. 方法

    基于小型样本微结构的程序化模型(tiny example-based procedural model),基于材质的自相似性,能够通过重复利用少量样本来生成复杂的闪光细节。

    法线分布函数预计算(precomputed Normal Distribution Functions, NDFs),使用四维高斯分布(4D Gaussians)预计算并存储小型样本的法线分布函数(NDFs)。存储在多尺度 NDF 图中(multi-scale NDF maps),并在渲染时通过简单的纹理采样调用。

    基于小型样本的 NDF 评估方法(tiny example-based NDF evaluation method),通过纹理采样结合小型样本 NDF 评估方法,快速生成复杂表面的闪光外观。

    [Zhu 2022] Practical Level-of-Detail Aggregation of Fur Appearance

    毛发渲染、简化毛发数量、神经网络

    一种实用的毛发外观聚合模型,通过减少几何毛发数量并结合光线多次散射,利用神经网络实现实时动态简化,显著加速毛发渲染,同时保持逼真的视觉效果。

    img

    1. 背景

    毛发数量太多,每根毛发的光线散射和反射会大幅增加计算量,尤其是在模拟多次光线散射时。

    现有简化方法大多通过减少毛发数量来提高渲染效率,局限性(limitations of existing simplification methods)很大。这种方法会导致毛发看起来过于粗糙或干燥,光线的反射和散射效果也不真实。

    2. 动机

    减少几何复杂性(reducing geometric complexity)。

    提高渲染效率(improving rendering efficiency)。

    3. 方法

    提出一个聚合毛发外观模型(aggregated fur appearance model),用一个粗大的圆柱体来表示一组毛发簇的光学行为。通过分析单根毛发的光学属性(如光线入射角度等),该模型能够准确反映毛发簇的聚合外观。

    使用一个轻量级神经网络(lightweight neural network),将单根毛发的光学特性映射到聚合模型中的参数。

    提出了一个基于视距和光线反弹次数的动态细节层次方案(dynamic level-of-detail scheme),动态简化毛发的几何结构。

    [Clausen 2024] Importance of multi-modal data for predictive rendering

    预测性渲染、光谱渲染、微表面几何结构

    多模态数据(multi-modal data)对于预测性渲染(predictive rendering)很重要,特别是在准确建模材料反射行为方面,通过结合光谱、空间信息及微观几何细节,提升反射模型的真实性和计算效率。

    img

    1. 背景

    预测性渲染的需求(need for predictive rendering)旨在精确模拟材料的外观。

    目前的材料反射行为数据库大多局限于单一维度,通常只涵盖光谱域(spectral domain)或空间域(spatial domain),并且缺乏对微观几何细节(microgeometry)的描述。

    2. 动机

    为了弥补数据不足(addressing data limitations),通过多模态数据,不仅能够更好地模拟材料在不同光照条件下的反射,还能揭示材料表面微观几何对光散射的影响。

    多模态反射数据有助于开发更加真实且高效的反射模型。

    3. 方法

    多模态反射数据的构建(building a multi-modal reflection database),包含材料的光谱信息(spectral data)、空间分布信息(spatial distribution data)以及微观几何特征(microgeometry details)。

    对材料表面的微观几何进行微观几何模拟(simulating microgeometry)。

    光谱和空间域的综合(integrating spectral and spatial domains)。

    [Shlomi 2024] A Free-Space Diffraction BSDF

    波动光学、电磁计算、自由空间衍射、重要性采样、PT集成、

    一种基于自由空间衍射的双向散射分布函数(BSDF),通过光线追踪在不需要几何预处理的情况下,能够高效模拟复杂场景中光绕过物体边缘的衍射现象,特别适用于路径追踪技术。

    img

    1. 背景

    自由空间衍射(free-space diffraction)是一种光学现象:当光线遇到物体的边缘或角落时会发生绕射,部分能量弯曲进入阴影区。这种现象对模拟光波的传播非常重要,尤其是在长波长(如雷达、WiFi 和蜂窝信号)条件下。

    传统方法如几何衍射理论(GTD)和统一衍射理论(UTD)的局限性(limitations of traditional methods)在于需要处理尤其是在复杂几何场景中互相干涉的光线导致的极高计算复杂性。现有方法依赖于场景简化和特定几何结构,无法有效处理复杂的三维场景。

    2. 动机

    解决复杂场景中的衍射渲染问题(addressing diffraction in complex scenes)。现有的衍射模拟方法难以扩展并与路径追踪技术兼容。

    现有衍射方法往往依赖复杂的非线性干涉计算,而路径追踪采用线性渲染方程。本文希望设计一种在路径追踪框架内高效工作的自由空间衍射 BSDF,不需要对路径追踪器做大修改。

    3. 方法

    基于 Fraunhofer 衍射的边缘衍射模型(Fraunhofer diffraction edge model)。在光线与几何物体交点附近,识别相关的边缘并计算绕射效应。当光线照射到物体时,通过几何分析构建自由空间衍射的 BSDF,量化光线如何在几何物体周围传播,以及有多少能量发生衍射。

    重要性采样策略(importance sampling strategy)评估光线与物体的交互点周围的几何边缘,并对绕射光线进行采样和追踪。

    路径追踪中的无缝集成(seamless integration in path tracing)

    [Kaminaka 2024] Efficient and Accurate Physically Based Rendering of Periodic Multilayer Structures with Iridescence

    多层油膜渲染、虹彩效应、波动光学

    一种多层干涉渲染方法。表现周期性多层结构的虹彩效应,通过引入生物学中的 Huxley 方法,实现了独立于层数的高效计算.

    img

    1. 背景

    薄膜干涉(thin-film interference)是一种光波的波动特性引起光学现象,在视角或光照角度变化时会产生虹彩效果(iridescence)。通常出现在自然界中的单层或多层结构中,比如蝴蝶翅膀、甲虫壳和介电镜等。

    现有方法例如递归计算法和转移矩阵法(Transfer Matrix Method, TMM)的局限性(limitations of existing methods)在于计算复杂度随着层数的增加而显著提高。简化方法则会忽略薄膜中的多重反射。

    2. 动机

    提高多层结构的渲染效率(improving efficiency for multilayer structures)。

    应用于复杂材料的物理渲染(physical rendering of complex materials)。

    3. 方法

    提出一种基于 Huxley 方法的多层干涉模型(multilayer interference model based on Huxley’s approach)。高效计算周期性多层结构中的反射和透射系数。且支持多种材料和吸收效应(support for multiple materials and absorption effects)。

    基于 BRDF 实现(BRDF implementation)。被实现为一个 BRDF(双向反射分布函数),可以集成到传统渲染系统中,如 PBRT-v3。

    [Yu 2023] A Full-Wave Reference Simulator for Computing Surface Reflectance

    波动光学、全波模拟

    基于边界元法(BEM)的全波模拟器,可以高精度计算粗糙表面上的光散射,用于评估和改进计算机图形学中的近似反射模型,特别是在多次散射、干涉和衍射效应显著时。

    img

    1. 背景

    表面反射模型通常基于几何光学(geometric optics),假定光以光线的形式传播。对于表面特征与光波长相当的场景,几何光学模型无法准确捕捉如衍射和干涉等波动效应(wave effects)。

    基于波动光学近似,如 Beckmann-Kirchhoff 理论和 Harvey-Shack 模型,它们在多次散射和复杂几何结构下仍然会产生误差。

    2. 动机

    由于现有的反射模型在不同情况下精度各异,缺乏可靠的基准来验证其准确性。本文的目标是开发一个基于全波理论的模拟器以最大限度地减少近似并通过数值离散化实现高精度的表面反射计算,从而提供一个可以用于评估各种反射模型准确性的参考工具。

    解决多次散射和波动效应(addressing multiple scattering and wave effects)。

    3. 方法

    边界元法(Boundary Element Method, BEM),用自适应积分法(Adaptive Integral Method, AIM)来加速。

    模拟器的全波模拟(full-wave simulation)完整解决了 Maxwell 方程,能够准确模拟光的传播、干涉、散射等波动现象。

    并且能高效计算 BRDF(efficient BRDF computation)。

    [Shlomi 2022] Towards Practical Physical-Optics Rendering

    波动光学、PLT

    提出了一个高效的物理光传输(PLT)框架,利用部分相干光和波动光学的原理,通过改进的渲染算法,在复杂场景中实现了精确的干涉、衍射和极化效应的渲染,并使其性能接近经典的“物理基础”渲染方法。

    img

    1. 背景

    现有的渲染方法大多忽略了光的波动特性,特别是在复杂场景中,这导致无法渲染诸如光的干涉、衍射等物理现象,这些现象在某些材料(如彩虹色涂层、光盘等)上尤为重要。为了解决这一问题提出一种基于麦克斯韦电磁理论的渲染框架。

    虽然 PLT 提供了理论上的全波模型,能够模拟光的相干性、干涉和衍射,但现有的方法计算难度非常大。

    2. 动机

    简化物理光传输模型(simplifying the physical light transport model)。

    引入新材料(introducing new coherence-aware materials),开发能够感知光相干性的材料模型,提高 PLT 在实际场景中的可用性。

    3. 方法

    限制光的相干性形状(restricting the coherence shape of light),通过热力学推导,证明这种近似在大多数自然光源下是合理的。

    采用了扩展的斯托克斯-穆勒方法(Stokes-Mueller calculus),将光的辐射、极化和相干性属性结合在一起,作为新的渲染原语。广义的斯托克斯参数可以完整量化光的所有属性,并能精确模拟由这些属性引起的复杂光学现象,如干涉和衍射。

    波动 BSDF 和重要性采样(wave BSDF and importance sampling)。

    新相干感知材料模型(new coherence-aware material models)充分利用光的相干属性扩展了 PLT 的适用范围。

    [Huang 2022] A Microfacet-based Hair Scattering Model

    毛发渲染、散射瓣、BCSDF

    提出了首个基于微表面理论的毛发散射模型准确地描述毛发的散射行为。非可分离的散射瓣结构、椭圆形截面、高效的重要性采样和前向散射光斑(glint-like)效果。

    img

    1. 背景

    毛发渲染的复杂性(complexity of hair rendering)。大多数现有的毛发散射模型通过可分离的散射瓣(separable lobes)来简化数学计算,虽然快但并不是Ground Truth的。

    大多数毛发散射模型基于几何简化,将毛发当作光滑圆柱体处理。导致了散射行为的偏差。

    2. 动机

    引入物理合理的微表面模型(introducing a physically-plausible microfacet model)更准确地描述毛发的散射行为:表面的微观粗糙度、倾斜的鳞片结构以及非可分离的散射瓣形状。

    改善采样效率和物理精度(improving sampling efficiency and physical accuracy)。

    3. 方法

    将毛发建模结合微表面(microfacet)理论,应用 GGX 或 Beckmann 正态分布来描述表面的微观粗糙度。并且是非可分离的散射瓣(non-separable lobes)。

    毛发散射的分布函数(bidirectional curve scattering distribution function, BCSDF)描述光线在毛发表面上的复杂交互行为。

    支持椭圆截面和高效采样(support for elliptical cross-sections and efficient sampling)。支持椭圆的毛发截面。

    [Shlomi 2021] A Generic Framework for Physical Light Transport

    波动光学、PLT

    提出了首个基于麦克斯韦电磁理论能够处理部分相干光的全局光传输框架,准确模拟光的干涉和衍射效应,并将传统的基于辐射度的光传输理论扩展到波动光学领域。

    img

    1. 背景

    现有的光传输模型通常基于几何光学和辐射度(radiometry)忽略了光的波动特性,无法模拟干涉和衍射等现象。不能准确再现如彩虹色效应、光栅、薄膜干涉、光偏振等波动光学效应,也就是经典辐射度光传输模型的局限性(limitations of classical radiometric light transport models)。

    目前的模型只能处理局部处理波动效应(local treatment of wave effects),对于全局场景中光的传输和相干性搞不了。

    2. 动机

    实现全局光传输中波动效应的物理一致性(achieving global wave-optics consistency in light transport),也就是结合麦克斯韦电磁理论。

    结合波动光学与传统几何光学(integrating wave optics with classical geometric optics),处理光的波动效应,又能在短波长极限下与经典几何光学一致。

    3. 方法

    光的部分相干性建模(modelling partially-coherent light)分为两个部分。两点相干性描述(two-point coherence description)和光源模型(light source model)。与传统的辐射度不同,本文基于光的部分相干性引入了“交叉谱密度函数”(cross-spectral density function),能够捕捉光的干涉特性。自然光源的物理模型,基于量子力学中的自发辐射原理。

    光传输方程的推广(generalizing the light transport equation)。利用谱密度传输方程(spectral-density transport equation)计算光在传播过程中的干涉和衍射效应。并且本文证明了该框架在短波长极限下简化为经典的几何光学,因而可以与现有的光传输方法无缝衔接。

    衍射与传播模型(diffraction and propagation model)。

    [Shlomi 2024] A Generalized Ray Formulation For Wave-Optics Rendering

    波动光学、波动采样理论、双向路径追踪

    提出了一种广义光线(generalized ray)形式化模型,用于波动光学渲染,通过解决采样问题,使得弱局部性、线性和完备性在波动光学中同时成立。实现了复杂场景下的双向波动光学路径追踪和高效渲染。

    img

    1. 背景

    光传输的经典模型基于射线光学(ray optics),假设光作为线性传播的点查询。然而,射线光学无法捕捉光的波动特性,忽略了干涉、衍射等现象,例如虹彩效应、薄膜干涉和长波辐射的绕射等。

    虽然波动光学能够精确描述光的干涉和衍射效应,但由于其非线性行为,传统的采样和路径追踪技术难以应用。

    2. 动机

    解决波动光学中的采样问题(solving the sampling problem in wave optics)。为了在双向光传输中应用波动光学,需要解决弱局部性下的采样问题。

    开发一种新型的波动光学形式化,使其能够在逆向路径追踪和双向光传输中有效应用,同时保持线性和完备性。

    提高波动光学渲染效率(improving wave-optics rendering efficiency),使得波动光学渲染的收敛速度能够接近经典射线光学的渲染系统。

    3. 方法

    广义射线的引入(introduction of the generalized ray)。进行弱局部的线性查询。广义射线不再局限于单一位置的点查询,而是占据一个小的空间区域。能够捕捉光的干涉和衍射效应。

    弱局部性和线性化(weak locality and linearization)。在波动光学中,完美的局部性和线性化是无法同时实现的。因此放弃完全局部性。采用弱局部性确保广义射线可以线性叠加。

    逆向波动光传输模型(backward wave-optical light transport model)。

    双向路径追踪中的应用(application in bidirectional path tracing)。

    [Shlomi 2021] Physical Light-Matter Interaction in Hermite-Gauss Space

    波动光学、PLT

    提出了一种新的光-物质相互作用框架,通过将部分相干光分解到 Hermite-Gauss 空间,并将物质建模为局部平稳的随机过程,从而统一了散射和衍射的公式,并实现了对复杂光学现象的高效计算和描述。

    img

    1. 背景

    日常观察到的光通常由许多独立的电磁波组成。由于部分相干光的复杂性(complexity of partially-coherent light),部分相干光的相干特性在微观几何表面的反射、涂层材料的外观、光栅效应等现象经典的辐射度理论无法解释。

    现有工具的局限性(limitations of existing tools)只能渲染特定材料,难以推广。

    2. 动机

    构建通用的光-物质相互作用框架(building a general-purpose light-matter interaction framework),高效处理部分相干光,简化现有计算工具的复杂性。

    分解光的相干特性(decomposing light coherence properties),引入 Hermite-Gauss 空间,希望以计算可行的方式分解和表示光的相干性,从而广泛适用于各种光学现象。

    3. 方法

    Hermite-Gauss 空间中的光传输(light transport in Hermite-Gauss space)。

    局部平稳物质模型(locally-stationary matter model)。

    光-物质相互作用的分析(analysis of light-matter interaction)。

    光-物质相互作用公式的统一(unifying light-matter interaction formulae)。

    [GUILLÉN 2020] A general framework for pearlescent materials

    波动光学、干涉颜料光学、逆渲染

    模拟珍珠光材料的光学特性。为珍珠光材质的设计和逆向渲染提供了理论基础。

    img

    1. 背景

    珍珠光材料的广泛应用(Wide Applications of Pearlescent Materials),并且这些材质具有独特的光泽和变色效果,广泛应用于包装、陶瓷、印刷和化妆品等领域。

    珍珠光效应的复杂光学过程(Complex Optical Processes of Pearlescence)源于颜料片之间的多重散射和波动光学干涉。现有的模型难以全面描述这些复杂的光学行为。

    2. 动机

    建立更广泛适用的珍珠光材质模型(Building a More Comprehensive Model for Pearlescent Materials)。现有的珍珠光材质模型对颜料的复杂结构和制造过程的影响考虑不足。目标是通过引入新的光学模拟模型,扩展可表示的珍珠光外观范围。

    一个通用的珍珠光材质模型还可以用于逆向渲染中。

    3. 方法

    提出基于干涉颜料的光学模型(Optical Model Based on Interference Pigments)。将颜料片的多层结构、粒子的方向相关性、厚度变化等特性纳入考虑。

    参数空间的系统研究(Systematic Study of Parameter Space),探讨了颜料片的方向性、厚度和排列对材料外观的影响。

    逆向渲染(Inverse Rendering)帮助解读真实世界中的光散射现象。

    [Werner 2017] Scratch iridescence: Wave-optical rendering of diffractive surface structure

    波动光学、非旁轴标量衍射理论、虹彩效应、微观划痕

    基于非旁轴标量衍射理论的波动光学模型,用于模拟微观划痕表面的虹彩效应,从局部光斑到远距离下的光滑反射。

    img

    1. 背景

    划痕引起的光学效应(Optical Effects of Scratches),定向光照下(如阳光或卤素灯),这些划痕表面会显示出复杂的虹彩图案,是由划痕结构对入射光的衍射引起的。在几何光学模型中无法再现。

    虽然现有的解析模型能够重现一些微结构(如光盘)的虹彩效果,但对于局部分辨的划痕光学行为的模拟仍然是一个难题。

    2. 动机

    提供一个波动光学的划痕渲染框架(Provide a Wave-Optical Scratch Rendering Framework)。能够精确模拟划痕引起的光学效应,包括光斑、虹彩等视觉现象。

    3. 方法

    基于非旁轴标量衍射理论的波动光学模型(Wave-Optical Model Based on Non-Paraxial Scalar Diffraction Theory)。本文的方法能够在入射和反射大角度下准确模拟光在微尺度表面特征上的衍射行为。

    划痕表面结构的矢量图形表示(Vector Graphics Representation of Scratch Surfaces)。

    多尺度行为的 BRDF 模型(Multi-Scale BRDF Model)。

    物理基础渲染系统中的集成与优化(Integration and Optimization in Physically-Based Rendering Systems)。

    [Fourneau 2024] Interactive Exploration of Vivid Material Iridescence using Bragg Mirrors

    波动光学、虹彩效应、Bragg镜、光谱近似

    描述 1D 光子晶体(即 Bragg 镜)的材料虹彩效果。特定条件下简化为快速计算的单次反射BRDF。

    img

    1. 背景

    自然界中的虹彩现象(Iridescence in Nature)体现在生物、植物或宝石中。这是由特定的微观几何结构引起的,这些结构的尺寸与可见光波长相当。最显著的例子是光子晶体(photonic crystals),在一维、二维或三维结构中重复排列产生结构色。

    1D 光子晶体,即 Bragg 镜的光学特性(Optical Properties of Bragg Mirrors)。现有的工作大多使用经典的传递矩阵法(transfer matrix method)来计算多层薄膜的光学效应,但随着薄膜数量的增加,计算复杂度也显著增加。

    2. 动机

    简化 Bragg 镜反射计算(Simplifying the computation of Bragg mirror reflectance),引入一个更简洁、封闭形式的反射公式探索在 RGB 光谱渲染中的快速近似方法。

    研究粗糙 Bragg 层的效果(Investigating the effects of rough Bragg layers),探究表面粗糙度对光学表现的影响。

    3. 方法

    引入封闭形式的反射公式(Closed-form Reflectance Formula)。基于 Yeh 的公式(Yeh88 Formula),做 RGB 光谱近似(RGB Spectral Approximation)。

    分析粗糙度对光学传输的影响(Effect of Roughness on Optical Transmission)。

    利用单次反射 BRDF 模型(Single-reflection BRDF Model)高效地渲染粗糙 Bragg 层的外观。

    [Chen 2020] Rendering Near-Field Speckle Statistics in Scattering Media

    MC路径积分、重要性采样、记忆效应、散斑、生物组织成像

    在散射介质中模拟近场成像条件下的散斑统计,加速生物组织成像应用中的散斑渲染,为基于散斑的成像技术提供支持。

    img

    1. 背景

    在生物组织中进行深层成像时,由于光在组织内部的多重散射,成像变得非常困难。在相干光(如激光)照射下,组织内部会产生高频的散斑图案。散斑图案的统计学特性,特别是记忆效应(memory effect),为组织成像技术(如荧光成像和自适应光学聚焦)提供了基础。

    现有模型的局限性(Limitations of Existing Models)在于当前主要是集中在远场成像。近场条件都被忽略了。

    2. 动机

    提供物理精确且高效的近场散斑渲染模型(Developing a Physically Accurate and Efficient Model for Near-Field Speckle Rendering)。

    提升散斑模拟的计算效率(Improving Computational Efficiency of Speckle Simulations),波动方程求解器计算量太大了。

    3. 方法

    基于蒙特卡洛路径积分的渲染框架(Monte Carlo Path Integral Rendering Framework)。

    光学孔径和散射相函数的近似(Aperture and Phase Function Approximations)。

    重要性采样(Importance Sampling)。

    [Kajiya and Kay 1989] Kajiya-Kay Model

    毛发鼻祖,无需多言

    毛发简化为细长圆柱体,并通过扩展 Phong 模型模拟毛发表面的光反射行为。

    img

    1. 背景

    基于 Phong 光照模型的概念,将其扩展为适应毛发渲染的经验模型。

    2. 动机

    毛发具有非常独特的光学特性,如高光反射、次表面散射等,而这些现象的出现与毛发的几何形状和表面结构密切相关。

    3. 方法

    Kajiya-Kay 模型基于 Phong 模型的思想,扩展 Phong 模型(Extension of the Phong Model)。

    细长圆柱体假设(Cylindrical Hair Representation)。

    [Marschner 2003] Light Scattering from Human Hair Fibers

    毛发鼻祖,无需多言+1

    能够捕捉现有Kajiya-Kay模型无法描述的关键视觉效果,如多个高光和与纤维轴旋转相关的散射变化。

    img

    1. 背景

    Kajiya-Kay模型的局限性(Limitations of the Kajiya-Kay Model)仅假设毛发为不透明的圆柱体,忽略了内部反射和透射等关键现象.

    2. 动机

    毛发是介电材料,尤其是浅色头发(如金色、棕色、红色)具有显著的半透明性。因此更真实的毛发散射模型需求(Need for a More Accurate Hair Scattering Model)。

    3. 方法

    测量了单根毛发的3D全半球光散射。

    提出透明椭圆柱体模型(Transparent Elliptical Cylinder Model)。

    简化的阴影模型(Simplified Shading Model)。

    [Benamira 2021] A Combined Scattering and Diffraction Model for Elliptical Hair Rendering

    波动光学、毛发渲染、椭圆毛发、衍射散射瓣函数、免预计算

    一个结合散射和衍射的新模型,能够在无需预计算的情况下模拟具有椭圆形截面的毛发的光散射和衍射现象。

    img

    1. 背景

    依旧是波动光学为背景。当光与尺寸接近光波长的物体相互作用时,干涉和衍射效应变得显著。

    毛发渲染需要考虑其几何特性以及光的波动效应。虽然射线追踪可以模拟大部分散射现象,但对于毛发中的衍射现象,它显得不足。

    2. 动机

    解决衍射和椭圆形截面问题(Addressing Diffraction and Elliptical Cross-sections)。提出了一个结合光的波动和射线特性的模型,能够在无需预计算的情况下处理毛发的光衍射现象。支持任意椭圆形截面的毛发纤维。

    3. 方法

    射线部分(Ray Interaction with Elliptical Fibers)引入完整的光传输模型,延续了传统的射线模型,处理了大多数散射效应。

    波动部分(Wave Diffraction by Elliptical Fibers)引入了一个新的衍射散射瓣函数,捕捉光与毛发相互作用时产生的强向前散射效应。

    免预计算(Precomputation-free Approach)。

    现代离线渲染器集成(Integration with Modern Ray Tracers)。

    [Zinke 2008] Dual Scattering Approximation for Fast Multiple Scattering in Hair

    毛发渲染、多重散射

    “双重散射”模型广泛运用于实时渲染,经典模型无需多言。

    img

    1. 背景

    在浅色密集的头发中,多次散射是决定整体头发颜色的关键因素。

    现有的基于路径追踪或光子映射的方法渲染太慢,且往往忽略了头发纤维的圆形截面。

    2. 动机

    一个物理精确且高效的多次散射模型需求(Need for Physically Accurate and Efficient Multiple Scattering Model)。

    3. 方法

    双重散射模型(Dual Scattering Model),全局多重散射和局部多重散射。全局多重散射部分旨在计算穿过头发体积并到达目标点邻域的光,而局部多重散射则考虑该邻域内的散射事件。

  • 毛发渲染研究:波动光学的毛发渲染-学习笔记-2

    毛发渲染研究:波动光学的毛发渲染-学习笔记-2

    声明:这篇文章主要是关于SIG23年这篇黑狗毛论文的个人笔记。应该也没啥阅读门槛,因为我自己也没有入门图形学。公式有但是不多。公式tag跟原论文一样。所有内容都是我瞎捣鼓的,公式如果有理解错误请多多指正,感谢感谢!

    原文:https://zhuanlan.zhihu.com/p/809636731

    关键词:图形学入门、离线渲染、基于波动光学渲染、毛发渲染

    Mengqi Xia, Bruce Walter, Christophe Hery, Olivier Maury, Eric Michielssen, and Steve Marschner, “A Practical Wave Optics Reflection Model for Hair and Fur,” ACM Transactions on Graphics (TOG), vol. 42, no. 4, article 39, pp. 1-15, Jul. 2023.

    1. Related Work

    • 基于Ray的纤维模型 在人类毛发的研究中,Marschner[2003]的模型广泛应用于业界,通过分析介电圆柱和圆锥中的光线路径,将散射分为R、TT和TRT。Zinke[2009]加入了漫反射成分。Sadeghi[2010]提出了艺术家控制参数化方法。d’Eon[2014]和Huang[2022]提出了非可分离的表征方法,也就是说方位角和纵向角度之间有耦合效应,不可简单分离。Chiang[2016] 进一步优化了该模型,使其适用于生产级渲染。 除了人类毛发,Khungurn和Marschner[2017]探讨了椭圆形毛发的建模。Yan[2015, 2017]研究了带有内部髓质的动物毛发。Aliaga[2017]将模型推广至有更加复杂截面的纺织纤维。
    • 基于波动光学的纤维模型 Linder[2014]解析了具有完全圆形截面的圆柱纤维,并且探讨了散射行为。Xia[2020]通过在具有任意截面的圆柱上进行二维波动模拟,展示了与几何光学模型相比的若干重要差异。然而这个模型是规则的圆形,并没有譬如毛鳞片等微观几何结构。Benamira和Pattanaik[2021]提出了更加快速的混合模型,这个模型仅仅在前向散射使用波动光学求解,其余部份则是依赖几何光学。
    • 基于物理光学的平面模型模拟 物理光学平面模型使用物理光学近似来模拟光线在接近平面、可以表示为高度场的粗糙表面上的散射行为,包括高斯随机、周期性、预计算和划痕表面。它们结合了Kirchhoff标量衍射理论和路径追踪方法来处理散射与反射,并通过各种模型(如Beckmann-Kirchhoff和Harvey-Shack)计算光在不同粗糙表面上的衍射。尽管这些模型在平面表面上有效,但纤维几何的封闭性和复杂的光线交互需要更复杂的处理方法。
    • 计算电磁学Spickle Effect程式化噪声 上一篇文章已经提及了,这里略过。

    https://zhuanlan.zhihu.com/p/776529221

    2. Background Research

    概述

    毛发建模是基于毛发的扫描电子显微镜(SEM)图像。可以准确还原毛发的微观结构,例如毛鳞片、粗糙度。

    接下来,用「WAVE SIMULATION WITH 3D FIBER MICROGEOMETRY」计算粗糙纤维表面的反射和衍射。

    在这个基础上,引入了散斑理论来分析散射模式的统计特性。并且用噪声来描述这些散斑,大幅优化模型。

    然后通过与实际测量数据的对比,推导出合理的纤维参数(例如尺寸、表皮角度和表面粗糙度)。最后集成进渲染系统中。

    3. OVERVIEW

    3.1 Fiber scattering models

    这个我翻译成纤维散射模型。这个东西描述的是单根纤维发生相互作用。这里的关键核心是BCSDF(双向曲线散射分布函数)。有别于在表面反射和折射中常用的双向散射分布函数(BSDF),BCSDF是专门为曲线形状的纤维设计的。下面这个公式讲的是,给定某波长的光照射在一根纤维上时,它从某个方向射入后,会从另一个方向反射或透射出来。
    $$
    L_r(\omega_r, \lambda) = \int L_i(\omega_i, \lambda) S(\omega_i, \omega_r, \lambda) \cos \theta_i d\omega_i \tag{1}
    $$
    公式左边表示给定波长 $\lambda$ ,出射方向 $\omega_r$ 下的辐射亮度。$ L_i(\omega_i, \lambda)$ 是入射方向 $\omega_i$ 的辐射亮度。 $S(\omega_i, \omega_r, \lambda)$ 是双向曲线散射分布函数,描述了光线如何被纤维”打散”。$\cos \theta_i$ 是为了考虑入射角度的影响,如果光线以一个很平的角度照射到纤维上,它的影响会比垂直照射时小。

    把上面这个公式写成球坐标,并且把每一种不同的光线与毛发纤维的交互当作不同的模式,然后把不同的散射项累加起来:
    $$
    S(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) = \sum_{p=0}^{\infty} S_p(\theta_i, \theta_r, \phi_i, \phi_r, \lambda)
    \tag{2}
    $$
    第一散射项 $S_0$ 描述表面反射,即以前经常说的直接反射项 $R$ 。这一项是一般代表从光滑纤维的反射或者粗糙纤维表面反射的统计平均值。论文这里能更加精确地计算这一项。

    回想以前的渲染方法(比如Marschner[2003]),通常是将每一个散射模式 $S_p$ 分解为两个独立的函数:longitudinal function $M_p$ 和anazimuthal function $N_p$ ,这样的方法已经被批判过是不准确的,因此应该避免使用下面这种可分离的近似方法。
    $$
    S_p(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) = M_p(\theta_i, \theta_r)N_p(\theta_i, \phi_i, \phi_r, \lambda)
    \tag{3}
    $$
    因此,XIA[2023]采样了多个粗糙纤维的散射参数并且取均值,记为 $S_0,avg$ 。 $f(\theta_h, \phi_h, \lambda)$ 是噪声分量,通过两个半程向量角度和波长来表示,用来修正当前的特定纤维实例和均值的偏差。
    $$
    S_{0,\text{sim}}(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) \approx S_{0,\text{avg}}(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) f(\theta_h, \phi_h, \lambda)
    \tag{4}
    $$
    当前,完整的纤维散射模型如下。第一项表示纤维表面的反射的散射模式,结合了3D波动模拟。后面的求和项是其他高阶的散射模式之和。
    $$
    S_{\text{prac}}(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) = S_{0,\text{prac}}(\theta_i, \theta_r, \phi_i, \phi_r, \lambda) + \sum_{p=1}^{\infty} S_p(\theta_i, \theta_r, \phi_i, \phi_r, \lambda)
    \tag{5}
    $$
    实际上,最终的散射公式更为简洁,以适应有更复杂几何结构的表面。

    3.2 Speckle theory

    散斑理论(Speckle Theory)描述光与粗糙表面相互作用时产生的随机光强分布现象。Goodman[2007]公式中的 $A$ 表示所有相位向量的叠加,即结果相位向量(Phasor):
    $$
    \mathbf{A} = \frac{1}{\sqrt{N}} \sum_{n=1}^{N} a_n = \frac{1}{\sqrt{N}} \sum_{n=1}^{N} a_n e^{i\phi_n}
    $$
    上式为散斑强度的综合表达,换而言之,用来表示散射后的光线强度。产生该现象的原因是光线会在许多微小表面之间相互反射、折射并相互干涉。光线传播发生的相位差导致明暗不均的图案。通过该公式,可以统计性地计算出光线如何在纤维表面相互干涉,得到散斑图案。

    4. WAVE SIMULATION WITH 3D FIBER MICROGEOMETRY

    在波动光学模拟中,光看作一种电磁波。由相互垂直的磁场和电场组成。光线与毛发的相互作用(如散射)可以转化为分析电磁场如何受到物体的影响。

    4.1 Wave optics

    首先需要明白,当电磁场随着时间周期变化时,称该场为时偕场(Time-Harmonic Fields)。在时谐场中,电场和磁场可以通过复数表示为相位向量(phasors)。巧妙的是,电场和磁场本身就是相互垂直。
    $$
    E_{\text{inst}} = \Re(E e^{j\omega t}), \quad H_{\text{inst}} = \Re(H e^{j\omega t})
    \tag{6}
    $$
    分别是电场和磁场,只不过是分别取了实数部分。复数部分包含了场的振幅和相位信息。

    下面这两组方程是麦克斯韦方程组在时谐场中的形式:
    $$
    \nabla \times \mathbf{E} = -\mathbf{M} – j\omega \mu \mathbf{H}
    \
    \nabla \times \mathbf{H} = \mathbf{J} + j\omega \varepsilon \mathbf{E}
    \tag{7}
    $$
    其中, $\varepsilon$ 是介电常数(影响电场), $\mu$ 是磁导率(影响磁场)。这两项描述了材料怎么影响电磁场的传播。

    当物体(如纤维)被一束入射波照射时,入射电场和磁场分别用 $\mathbf{E}_i$ 和 $\mathbf{H}_i$ 表示。但是物体的存在改变了这些场,使得我们观察到的是总场
    $$
    \mathbf{E}_1 = \mathbf{E}_i + \mathbf{E}_s, \quad \mathbf{H}_1 = \mathbf{H}_i + \mathbf{H}_s
    \tag{8}
    $$
    简而言之,总场 = 入射场 + 散射场。

    光能量随着散射场 $\mathbf{E}_s$ 和 $\mathbf{H}_s$ 向外传播,因此计算纤维的散射函数是关键。怎么算呢?

    全波模拟是最为准确的。进行全波模拟需要将物体离散化为网格,并且需要高分辨率(一般来说,每个波长至少10个网格单元),这导致需要处理百万级别的网格单元。在上一篇文章也有提及。

    也就是说,即便是模拟一个仅仅几十微米长的短纤维段,也需要处理数百万个网格单元。

    因此,采用 物理光学近似(PO)。在PO中,物体表面的电流和磁流(分别记作 $J$ 和 $M$ )可以看作是散射场的次级源头。电磁流产生了二次辐射,形成散射波。PO假设物体表面只会发生单次反射,忽略多次反射和复杂的衍射效应。得到表面的电流和磁流之后,计算他们产生的散射波。通过从表面电流和磁流中推导出这些远场波的性质。

    光一个PO还不够,还得揉个八叉树算法进去加速远场计算。

    4.2 Physical Optics Approximation

    具体地,PO做了两个简化假设:单次散射与局部平面假设。这个方法也足够通用。

    如上图,某物体表面采样了多个点,近似为平面。计算切平面电流和磁场,进而产生一个散射场。通过这个散射场,计算这些电流和磁流产生的远场散射波。与此同时,使用Octree结构划分为更小的体素。每个叶节点的计算结果会聚合至父节点,得到总的辐射贡献。

    Surface current calculation.

    表面电流、磁流的计算是PO模拟中非常关键的一步。对于每一个采样点,存储其法向量 $n(r{\prime})$ 和面积信息。接下来再每个小平面计算入射波和表面电流的相互作用。

    根据入射波的方向 $e_i$ 和表面法向 $n(r{\prime})$ ,将入射电场分解为平行极化和垂直极化分量。分解的原因是,平行极化和垂直极化在菲涅尔方程中,是完全不同的表达。

    平行极化分量:光的电场平行于入射光线的反射面。
    垂直极化分量:光的电场垂直于入射光线的反射面。

    因此,得到入射场 $E_i$ 被分解为平行极化的分量 $E_i^p$ 和垂直极化的分量 $E_i^s$ ,长这个样子: $E_i = E_i^p + E_i^s$ 。

    反射场 $E_r$ 被表示为平行极化和垂直极化的分量之和,入射场旁边的系数表示菲涅尔方程中的反射:
    $$
    E_r = E_r^p + E_r^s = F^p E_i^p + F^s E_i^s
    \tag{9-1}
    $$
    然后,总电场 $E_1$ 是入射场和反射场的总和:
    $$
    E_1 = E_i + E_r
    \tag{9-2}
    $$
    根据中学物理,我们知道电会生磁,磁也会生电。因此有如下表达:
    $$
    M = -n \times E_1,
    J = n \times H_1
    \tag{10}
    $$
    因此,根据入射场和反射场就可以计算出表面的感应电流和磁流。得到电流和磁流后,计算远场的散射波。

    在理论上,入射场可以是任意的。但是这里作者用了Gaussian-windowed平面波。这种波的振幅遵循正态分布,好算。

    总结一下,这里将入射光分解为两个分量,用菲涅尔方程算反射场。进而将反射场与入射场相加,得到总场。通过电/磁场与电/磁流的关系,计算表面的感应电/磁流。这样就可以模拟纤维的散射了。

    也就是说,计算纤维表面的电流和磁流的确可以得到光的散射行为。

    Far-field radiation in 3D

    上一节通过表面电流得到表面电流和磁流。本节用这个信息来计算远场散射。

    基于惠更斯原理(Huygens’s Principle)将原本的散射问题转化为辐射问题。

    惠更斯原理指出,每个波前的电都可以看作新的次级波源。一环扣一环的感觉。

    毛发纤维表面的电流 $J$ 和 磁流 $M$ 被视为光线的次级光源,然后重新辐射出来,得到散射场。

    这里就有点难了,涉及到电磁学中的矩量法(Method of Moments, MoM)。读者可以深入研究一下Gibson[2021]这本书,学会了一定要好好教我。但是没关系,我从闫老师2021年的paper中找了一张图,保证你能看懂。

    图中的红色小球表示的次级辐射源,各自向外辐射,类似于表面电流和磁流产生的次级辐射波。
    次级辐射源向各个方向发射等强度的波,这与本文散射公式中每个表面点对所有方向都有散射贡献的思想一致。
    图中观察了距离光源远场区域(距离为 $r$ )的一小片区域( $\delta \mathbf{r}$ )。在远场区域中,分析波在不同位置 $\mathbf{r}_1$ 和 $\mathbf{r}_2$ 的行为,分别沿着 $\hat{r}_1$ 和 $\hat{r}_2$ 两个方向观察。这与散射公式中,在远场处计算散射电场的行为非常相似。
    图中右侧的光波会在远场叠加形成复杂的干涉条纹,这类似于散射公式中的积分项,将次级辐射源的电磁波在远处叠加。

    用公式则表示为:
    $$
    E_s(\mathbf{r}) = j \omega \mu_0 \frac{e^{-jk_0 R}}{4\pi R} \hat{r} \times \int_\Gamma \left[ \hat{r} \times \mathbf{J}(r{\prime}) + \frac{1}{Z_0} \mathbf{M}(r{\prime}) \right] e^{jk_0 r{\prime} \cdot \hat{r}} d\mathbf{r{\prime}}
    \tag{11}
    $$
    结合图来理解,公式描述的是散射电场 $E_s(\mathbf{r})$ 在远处(远场)某一点 $\mathbf{r}$ 处的表现,与距离呈 $1/R$ 关系衰减。这个公式是一个二维复数平面,也就是把麦克斯韦方程组的解看作时谐电磁波的形式。

    看这个上式结构,形式上跟 $\mathbf{E}(\mathbf{r}, t) = \mathbf{E}_0 e^{j(\omega t – k \cdot \mathbf{r})}$ 很像,叫电场的常见时谐解。

    对应起来。 $ j \omega \mu_0$ 这虚数项描述磁场对电场的影响,与电磁场的频率 $\omega$ 和真空中的磁导率 $\mu_0$ 相关。光波的频率越高,电场越强。 $e^{-jk_0 R}$ 是相位因子,表示光波在传播中的相位变化。波数 $k_0 = \frac{2\pi}{\lambda}$ , $\lambda$ 是电磁波的波长。表示波传播到距离 R 的地方时,电场的相位会发生变化。 $\hat{r}$ 是从散射物体指向观察点的单位向量,表示波的传播方向。叉乘 $\times$ 操作符表示计算的是电场的方向。确保计算出的电场和波传播的方向一致。

    积分项 $ \int_\Gamma \left[ \hat{r} \times \mathbf{J}(r{\prime}) + \frac{1}{Z_0} \mathbf{M}(r{\prime}) \right] e^{jk_0 r{\prime} \cdot \hat{r}} d\mathbf{r{\prime}} $ 是该公式的核心。对物体表面 $\Gamma$ 进行积分,得到毛发表面每个点对散射电场的贡献。每个点的表面电流加表面磁流之和,再点乘相位因子。进一步的, $\mathbf{J}(r{\prime})$ 是表面电流密度, $\hat{r} \times$ 确保了电流产生的散射电场与波的传播方向 $\hat{r}$ 正交。 $Z_0$ 是自由空间阻抗(free space impedance),具体数值 $Z_0 = \sqrt{\frac{\mu_0}{\varepsilon_0}} \approx 377 \, \Omega$ ,个人理解该常数是真空中电场和磁场的比例关系,电场和磁场的抗阻不同因此需要统一尺度才能线性相加,即将磁流规范化到和电流类似的形式。指数项也是相位因子,不做过多解释。

    细心的读者可能发现,为何表面电流密度 $\mathbf{J}(r{\prime})$ 有叉乘 $\hat{r} \times \mathbf{J}(r{\prime})$ ,而表面磁流密度 $\mathbf{M}(r{\prime})$ 没有叉乘。

    根据麦克斯韦方程组,电场和磁场是互相正交的。电流 $\mathbf{J}$ 会产生磁场,变化的磁场再反过来产生电场。电场和磁场是相互耦合的。但是,我们重新看看麦克斯韦方程组的下面两条。
    $$
    \nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}
    \
    \nabla \times \mathbf{B} = \mu_0 \mathbf{J} + \mu_0 \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t}
    $$
    磁场的生成是直接通过位移电场来实现的,方向已经和电场正交。而电场的产生是磁场的变化率,方向性需要调整。

    换一个角度来理解,积分项左边描述的是电磁场强度随距离衰减,也考虑了相位变化和方向性。积分项描述每个表面点的电磁流与相位贡献

    总结,公式(11)是一个精确的表达,描述物体表面电磁场如何在距离 $r$ 处散射。得到了电场的公式,磁场就很容易计算了。

    当散射距离 $R$ 足够大时,远场的简化表达式如下,可以直接忽略近场效应。换句话说,在远场中,传播特性已经趋于稳定,因此可以把积分项简化为与散射方向 $\hat{r}$ 相关的项,即 $E_s^{\text{far}}(\hat{r})$ 。
    $$
    E_s(r) = \frac{e^{-jk_0 R}}{R} E_s^{\text{far}}(\hat{r}), \quad H_s(r) = \frac{e^{-jk_0 R}}{R} H_s^{\text{far}}(\hat{r})
    \tag{12}
    $$
    此外,若直接计算每个点的贡献,时间复杂度为 $O(MN)$ ,即离散点数$M$ $*$ 散射方向数$N$ 。此处引入八叉树,通过空间划分减少计算表面的离散点数,时间复杂度降到了 $O(M+log(M)N)$ 。具体实现方式在4.3。

    4.3 Multilevel fast Physical Optics

    用多层快速物理光学(Multilevel Fast Physical Optics, MFPO)加速远场散射计算。

    Chew[2001]提出的多层快速多极子算法(MLFMA),用于加速求解电磁场散射问题。这个算法首先为例如毛发表面构建一个八叉树结构,每个叶节点表示一个采样点。构建完Octree后计算每个叶节点的表面电流、磁流。接着从叶节点出发逐层向上累积。从原本的 $O(MN)$ 降低到 $O(M + \log(M)N)$ 。

    接着作者介绍了八叉树加速算法的三个关键部分。首先是远场散射核(far-field scattering kernel)。
    $$
    e^{jk_0 r{\prime} \cdot \hat{r}} = e^{jk_0 (r{\prime} – c_L) \cdot \hat{r}} \prod_{i=1}^{L} e^{jk_0 (c_i – c_{i-1}) \cdot \hat{r}}
    \tag{13}
    $$
    最终目标是计算物体表面每个点的电磁波对某个远场观察区域(距离为 $R$ ,方向为 $\hat{r}$ )的散射贡献。具体是求散射电场 $E_s(r)$ 和磁场 $H_s(r)$ ,即从毛发表面上的每个点 $r{\prime}$ 发出的电磁波在远场中的贡献。公式等号左边是某表面点 $r{\prime}$ 到远场观察方向 $\hat{r}$ 的相位变化。最终的时间复杂度为 $O(MN)$ 。作者把表面分为不同的区域,每个区域指定一个参考中心点,公式中的 $c_0, c_1, …, c_L$ 是八叉树中不同层次的节点中心。

    光是这样也没办法减少计算量。因此需要将距离较近的表面点,由于它们的相位变化差别很小,通过八叉树的高层节点合并这些点的贡献。

    还是用闫老师这幅图来解释。对于远场的某个区域 $\delta \mathbf{r} $ ,首先还是会精确计算所有采样点对参考点 $\mathbf{r}$ 的贡献。但是该区域的其他点则用八叉树的父节点进行近似计算。也就是说,旁边的 $\mathbf{r}_1$ 和 $\mathbf{r}_2$ 就不再需要考虑这么多的采样点了,而是直接用八叉树得到的总贡献。

    作者定义了一个方向集,八叉树每个父节点都存储了关于不同方向集的累积贡献数据。因此,父节点不仅包含空间上的信息,还包含多个散射方向上的累积信息。最终在根节点得到完整的360度散射场分布。

    接下来,从树的第二层开始,依次向上合并。上采样具体方法是对子节点的方向集中的散射贡献做正向FFT,接着zero-padding扩充频域数据最后逆向FFT转换为空间域。最终,使得父节点可以在不同方向上得到更加精确的散射信息。

    • Performance

    八叉树加速效果很好。三层树效果最佳。越复杂的纤维优化效果越好。

    • Fiber microgeometry and scattering patterns

    毛发纤维横截面一般不是完美的圆形,而是椭圆形。通过椭圆的主半径 $r_1$ 和次半径 $r_2$ 来定义纤维的几何参数。为了模拟纤维表面的微观粗糙度,作者在椭圆柱体的表面上叠加了一个高斯随机高度场(Gaussian random height field),模拟真实的纤维表面。进一步地,加入了角质层倾斜(cuticle tilt),模拟薄片在纤维表面倾斜排列。

    通过对比传统的基于光线的毛发模型,波动光学模拟发现,除了XIA[2020]预测到的显著的向前散射(forward-scattering)现象,还观察到了复杂的波长依赖颗粒图案(wavelength-dependent granular patterns)。在转换为RGB颜色时,会生成丰富的色彩效果。

    研究指出了一些从模拟中观察到的规律:

    • 无论它们的实际位置如何,具有相同几何参数(如半径、粗糙度、角质层倾斜等)的纤维,在散射行为上会生成相似的颗粒图案
    • 如果纤维的几何参数不同,则它们会生成不同统计特性的颗粒图案,即散射模式明显不同。
    • 散射斑点的位置依赖于光线的入射角度,偏移的方向跟随half vector方向。
    • 斑点(speckle)图案的大小随光波波长的增加而增大。这一现象与Goodman[2007]结果一致。

    5. A PRACTICAL FIBER SCATTERING MODEL

    实用纤维散射模型(A PRACTICAL FIBER SCATTERING MODEL)旨在解决纤维的微观几何变化和复杂散射行为。

    以前的研究一般是用Lut存散射分布函数,这种方法空间消耗巨大,需要同时记录纵向和方位角散射分布。

    现在,作者提出了一种基于小波噪声表示的紧凑纤维散射模型,可表示的几何复杂度提高了,散射效果更好了。

    简单的说,作者想要紧凑的统计散斑现象,使其可以通过均值方差自相关函数(ACF)等统计量来表示。因此作者借助了散斑理论(Speckle Theory)来描述光随机干涉所产生的图样。

    5.1 Speckle statistics

    这里作者上来就提到完全发展的散斑 (Fully Developed Speckle)这个概念。以下是个人理解。在光线照射到一个粗糙的表面(比如纤维/毛发表面)时,表面上的每个小区域都会散射光线。由于表面的微小不规则性,散射的光线之间会相互干涉,产生一个复杂的光强分布。这种分布表现为一系列亮点和暗点,我们称之为散斑。表面的微小特征(比如粗糙度)在整个照射区域(相对于光线的波长来说)变得足够不规则,导致散射光线在各个点上的相位和强度是随机的,这就是所谓的完全发展的散斑

    这个时候,可以用Goodman[2007]的complex Gaussian distribution来描述Fully Developed Speckle。即,电磁场的实部 $\mathcal{R}$ 和虚部 $\mathcal{I}$ 在空间上服从复高斯分布(complex Gaussian distribution)。
    $$
    p_{\mathcal{R},\mathcal{I}}(\mathcal{R}, \mathcal{I}) = \frac{1}{2 \pi \sigma^2} \exp\left( – \frac{\mathcal{R}^2 + \mathcal{I}^2}{2\sigma^2} \right)
    \tag{14}
    $$
    场的实部和虚部是独立且正态分布的。均值为零,方差相同。

    电磁场光强 $I$ 和该光强分布的服从指数分布(exponential distribution)的概率密度函数:
    $$
    I = \mathcal{R}^2 + \mathcal{I}^2 \ p_I(I) = \frac{1}{2\sigma^2} \exp\left( -\frac{I}{2\sigma^2} \right)
    \tag{15}
    $$
    这些公式没啥可讲的,总之散斑场就是很随机哒!

    作者让光强遵循指数分布,确保在单个方向的统计特性。其次,通过研究两个点之间的光强统计关系,衡量两个点的ensemble average。这里用autocorrelation function (ACF)。
    $$
    C(I_{p_1}, I_{p_2}) = \frac{\overline{(I_{p_1} – \overline{I_{p_1}})(I_{p_2} – \overline{I_{p_2}})}}{\sigma(I_{p_1}) \sigma(I_{p_2})}
    \tag{16}
    $$
    自相关函数的值介于 -1 和 1 之间,当值接近 1 时,说明两个光强的散射行为非常相近。这是高效再现纤维散射场中颗粒结构的关键。

    5.2 Wavelet noise representation of the speckles

    作者引入小波噪声(Wavelet noise)来表示散斑的噪声分量 $f(\theta_h, \phi_h, \lambda)$ 。具体公式如下:
    $$
    f(\mathbf{x}) = \sum_{b=0}^{n-1} w_b(\mathbf{x}) I\left(2^b g_{\lambda}(\mathbf{x})\right)
    \tag{17}
    $$
    公式的核心思想是将散斑的光强分解为不同频率层次的噪声,并且加权组合。

    通过调整不同频率带的权重,生成自相关函数 $ C_f(\mathbf{x}_1, \mathbf{x}_2)$ 接近与目标自相关函数的最终噪声。

    根据维纳-辛钦定理(Wiener-Khinchin theorem),自相关函数可以通过傅里叶变换(Fourier Transform)来计算。具体公式如下:

    $$
    C_f(\mathbf{x}_1, \mathbf{x}2) = \mathcal{F} \left( \mathcal{F}^{-1} \left( \sum{b=0}^{n-1} w_b I_b \right)^2 \right)
    \tag{18}
    $$
    这表示我们可以通过计算小波噪声的傅里叶变换,来获得自相关函数。自相关函数和功率谱密度函数是一对傅里叶变换,太Amazing了。

    这里原论文给了一个通过频率带加权求和近似计算ACF的证明。

    省流:通过对噪声的各个频率带进行加权,可以近似得到整个噪声的自相关函数,而不用处理不同频率带之间的交互。

    通过最小二乘法找到非负权重 $v_b$ ,以使得每个频率带的自相关函数 $C_b(\mathbf{x}1, \mathbf{x}_2)$ 的加权和可以逼近目标自相关函数 $C_t(\mathbf{x}_1, \mathbf{x}_2)$ 。

    $$ C_t(\mathbf{x}_1, \mathbf{x}2) \approx \sum{b=0}^{n-1} v_b C_b(\mathbf{x}_1, \mathbf{x}_2) \tag{19} $$ 计算完权重后,要确保能量守恒。也就是调整噪声函数 $f(\mathbf{x})$ 的期望值 $\mathbb{E}[f(\mathbf{x})] = 1$ 。 $$ \begin{aligned} & \mathrm{E}\left[S{\text {avg }}\left(\theta_i, \theta_r, \phi_r, \phi_r, \lambda\right) f\left(\theta_h, \phi_h, \lambda\right)\right] \\\
    & =S_{\text {avg }}\left(\theta_i, \theta_r, \phi_r, \phi_r, \lambda\right) \mathrm{E}[f(\mathbf{x})] \
    & \approx S_{\text {avg }}\left(\theta_i, \theta_r, \phi_r, \phi_r, \lambda\right)
    \end{aligned}
    \tag{20}
    $$


    虽然效果好,但是有局限性。比如在grazing incidence angles的地方(光线几乎平行表面的情况),拟合准确性下降,导致散射准确度下降。Degeneration in the Forward Direction问题,当光线处于正前方方向(光线方向与表面法线一致)时,半向量方向会退化。

    6. Validation

    6.1 Wave simulation validation

    计算了x-y平面中的散射强度,并通过3600个方位角 $\phi_r$ 进行计算,最终将这些角度平均到360个方向上。

    首先对比Mie散射。在grazing angles不如Mie散射。物体的半径相对于波长较大时,PO近似更为精确。当物体曲率较小,就不准。

    然后对比BEM。模拟一个小椭球体的波散射。BEM用了三个小时,PO花了两秒。

    最后对比2D BEM。用一维高斯高度场(1D Gaussian height fields)包裹在圆形和椭圆形的横截面上。PO完胜。

    6.2 Measurement

    使用了波长为 633nm 的 HeNe 激光器,光束的光斑大小为 0.7mm(沿着头发的长度方向)× 3mm(垂直于头发方向)。激光通过一个小孔照射在人类头发样本的一个小区域。

    总之就是效果好!

    6.3 Noise representation validation

    一个字,好!

    7. Rendering

    整合进PBRT-v3。原本的基于光线的模型记作 $S_{\text{ray}}$ ,而衍射模型记作 $S_{\text{diffract}}$ 。

    对于衍射,这里近似为单缝衍射,而缝的宽度等于圆柱体(纤维)的直径。
    $$
    f_{\text{diffract}}(\theta_i, \phi_d, a) = a \cos \theta_i \cdot \text{sinc}^2(a \cos \theta_i \sin \phi_d)
    \tag{22}
    $$
    这种衍射模型被用来和纵向函数结合,得到一个完整的双向曲面散射分布函数(BCSDF)。将衍射因子以 $50 \times 50 \times 200$ 的表格形式进行预计算。并使用同样大小的表格进行重要性采样。

    消光截面可以简单理解为光与物体相互作用的“有效面积”。 纤维的消光截面会比它的实际几何截面大。消光截面会接近于几何截面的两倍。光在纤维上既发生反射也发生衍射,因此我们需要把总能量分配给这两种现象。根据经验,可以把一半的能量用于衍射,另一半用于反射。
    $$
    S_{\text{diffract}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) = \frac{1}{2} \left[S_{\text{ray}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) + f_{\text{diffract}}(\theta_i, \phi_d, D/\lambda)\right]
    \tag{23}
    $$
    通过重要性采样,公平地考虑光的反射和衍射。

    接下来,最终的描述光散射现象的渲染公式,形式整得挺好:
    $$
    S_{0,\text{prac}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) = S_{0,\text{avg}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) f(\theta_h, \phi_h, \lambda)\ \\
    = \frac{1}{2} \left[ S_{\text{ray}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) + f_{\text{diffract}}(\theta_i, \phi_d, D/\lambda) \right] f(\theta_h, \phi_h, \lambda)\
    \tag{24}
    $$
    反射+衍射+噪声。噪声函数 $f(\theta_h, \phi_h, \lambda)$ 在最后,使得散射的光线不在集中在少数方向。

    重点看这个部分:
    $$
    S_{0,\text{prac}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) = S_{0,\text{avg}}(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) f(\theta_h, \phi_h, \lambda)
    $$
    $S_{0,\text{avg}}$ 表示毛发表面平均反射/折射和衍射的行为,这是通过预处理(BSDF表格)计算得到的。

    接下来讲讲如何从PO提取BCSDF。

    通过麦克斯韦方程得到散射的电场和磁场($E_s^{\text{far}}$ 和 $H_s^{\text{far}}$)。

    接着用坡印廷矢量(Poynting vector)计算能量流。相当于计算光的强度。


    $$
    \langle S \rangle = \frac{1}{2} \text{Re}(E \times H^) \tag{25}
    $$

    为了将模拟结果用于渲染,将散射强度与入射功率关联起来。散射强度的计算公式,其中 $R^2$ 是远场球面面积:

    $$
    I_s(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) = \langle S(\mathbf{r}) \rangle \cdot \hat{n} R^2 \tag{26}
    $$

    散射功率 $P_s$ 和吸收功率 $P_a$ 分别通过积分散射光和吸收光的强度来计算。

    $$
    P_s = \int_{\Omega} I_s(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) \, d\omega \tag{27}
    $$

    对于吸收功率 $P_a$ ,通过表面上的坡印廷矢量积分计算。

    $$
    \begin{aligned}
    P_a & =\int_{\Gamma} \frac{1}{2} \operatorname{Re}\left(\mathbf{E}1 \times \mathbf{H}_1^{}\right) \cdot \hat{\mathbf{n}}_1(A) d A \ & = \\
    \int{\Gamma} \frac{1}{2} \operatorname{Re}\left(\mathbf{J}^{} \times \mathbf{M}\right) \cdot \hat{\mathbf{n}}_1(s) d s
    \end{aligned}
    \tag{28}
    $$


    最终,BCSDF搞出来了。

    $$
    S(\theta_i, \phi_i, \theta_r, \phi_r, \lambda) = \frac{I_s(\theta_i, \phi_i, \theta_r, \phi_r, \lambda)}{|P_a – P_s|}
    \tag{30}
    $$

    最后用了一个5D的表格。

    1D 维度描述波长。
    2D 描述入射光的方向。
    2D 描述出射光的方向。

    可以通过散射的记忆效应减少存储需求。

    渲染时,对于每个入射光方向,查询相邻的表格数据,应用相应的角度偏移(记忆效应中的角度偏移量)。

    最终使用的表格大小为 $25 \times 32 \times 72 \times 180 \times 360$ ,非常大,约15GB的内存需求。

    8. Result

    与XIA[2020]相比,新模型更加鲜艳。色彩光斑(colorful glints)更好。体现多种波长对毛发产生的光斑。

    9. DISCUSSION AND CONCLUSION

    第一篇能够实际应用的 3D 波动光学纤维散射模型。

    能够生成光学散射中常见的细微光斑(speckle patterns)。

    虽然 3D 模拟的精度很高,但它的内存占用和计算成本非常大。提出了噪声实用模型,通过捕捉纤维散射光斑的统计特性(如自相关函数),减少计算量。

    目前该模型主要用于第一阶反射模式的模拟。未来可以扩展到更高阶的散射模式。

    高阶模式时可能需要进一步开发新技术来预测或测量高阶模式的统计特性。

  • 毛发渲染研究:从基于光线到波动光学-学习笔记-1

    毛发渲染研究:从基于光线到波动光学-学习笔记-1

    原文: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

zh_CNCN