目录
介绍:
相关工作:
几何:
渲染:
度量:
背景
羽毛的几何形状:
鸟的羽毛的颜色:
岩鸽颈部羽毛羽小枝颜色
薄膜的物理学:
用成像散射计进行测量:
模型:
椭圆的BSDF:
NDF(法线分布函数):
Masking and Shadowing(遮蔽与阴影):
SR:Thin-film reflection(薄膜反射):
ST:Transmission through barbule spacing(在羽小枝之间的传输):
STRT:Background component:
实现:
几何建模:
重要性采样:
结果与比较:
和散射图比较
和照片进行比较
性能:
前记:和大佬同学看的一篇文章-------------------------------------------------------------博主:mx
创造现实的人和动物一直是计算机图形学的中心挑战。一个重要的课题是头发和毛皮的渲染。尽管鸟类在著名的动画作品中扮演了关键角色,但是鸟类羽毛的渲染却少的多。由于羽毛的结构更为复杂,毛发和皮肤的渲染模型只能部分转移到羽毛上。这篇文章介绍了岩鸽的彩虹色的颈部羽毛的绘制方法。羽毛显示出明显的绿色紫色阴影,这是由于羽毛亚结构中的薄膜干涉引起的。在光谱和角度分辨测量的支持下,论文作者开发了一个全面的模型(模型如下),用于精确渲染羽毛,并考虑了不同尺度的特征。
(这个模型的微观程度:可以看下面这个图,对比一下)
论文核心观点:
①论文作者提出了一个参数化的羽毛双向散射分布函数(BSDF),它封装了微尺度结构(单支羽毛)的统计。它在渲染时被完全评估和并进行了重要性采样。
②论文作者通过改变局部阴影框架,在毫米级尺度(羽毛每根毛)上应用BSDF,提供丰富的细节,而不必明确地建模微观结构。
③论文作者在模型中加入了彩虹色,减轻了混合头发和彩虹色着色器的需要。
④论文作者使用测量和渲染的BSDF以及照片之间的一对一比较来验证作者的模型。
与头发几何建模类似,大多数作品将羽毛作为参数原语的集合,通常是贝塞尔曲线或NURBS曲线。最新成果 [论文:Procedurally Generating Biologically Driven Bird and Non-Avian Dinosaur Feathers.] 和 [论文:Procedurally generating biologically driven feathers. In Computer Graphics International Conference.]是从照片中自动推导出曲线原语的程序性羽毛几何表示。三角形表示经常用于纹理化:从他们早期工作的贝塞尔曲线表示中生成一个辅助网格,将色素沉着模拟的结果转移回羽支曲线。类似地,从扫描的羽毛中使贝塞尔控制点变化。Shader沿着控制点生成羽枝曲线,这可以通过绘制在控制点上的仿生属性来控制。作者的模型是基于在每个顶点上有相关的法向量的羽枝曲线,来表示局部羽小枝方向。据我们所知,Daniel Seddon, Martin Auflinger, and David Mellor是唯一也能够适应羽枝和羽小枝之间的渲染框架的。(相关论文:Rendertime procedural
feathers through blended guide meshes. In ACM SIGGRAPH 2008 talks. 1–1.https://doi.org/10.1145/1401032.1401130)
【tip:如果不知道羽枝,和羽小枝是啥的,可以去看上面介绍的羽毛结构图】
当在更大的尺度上渲染羽毛时,通常使用双向纹理函数(BTF),而不考虑其子结构。对于更多的几何细节,头发模型也会和双向纹理函数交替应用于羽枝,忽略了更精细的结构,如羽小枝。然而,根据[论文: Modeling physical optics phenomena by complex ray tracing.],羽毛的毫级特征也有助于光学散射。最近,[论文:Procedural Shading for Rendering the Appearance of Feathers. ] 展示了一种新的渲染技术,它通过在仍然应用头发渲染模型的同时,通过程序渲染子结构来考虑毫米级特征。以上的作品都不涉及彩虹色。鸟类学界深知鸟类羽毛中的彩虹色;然而,他们的模拟大多局限于纳米尺度,采用了基本方法,如薄膜干涉模拟和有限时域差分建模。只有对羽毛羽小枝进行了一次深度的光线追踪模拟是使用光学系统原型FRED的商业工具进行的。这些方法并不适合在渲染器中进行集成。相反,作者提出了一种羽毛特有的BSDF,它在统计上模拟了羽小枝反射率
获取BxDFs主要有两种方法。采用基于图像的方法,将仿真结果与一些照片相匹配。另外,使用带有机动机械臂的角反射计。反射率可以在高角度分辨率下采样,移动光源或传感器。特别是,使用球形机架拍摄多张完整羽毛的照片,然后将这些照片融合来可视化BRDF。我们基于图像的方法使用了 [ 论文:Imaging scatterometry of butterfly wing scales. ] 的设置。它与[论文:BRDF acquisition with basis illumination. 和 论文:Azimuthal scattering from elliptical hair fibers.] 中关于非平面反射器的应用的设置密切相关。我们的设置允许使用数码相机直接高效的进行BSDF采集,特别适合测量微尺度特征,如羽毛羽小枝和昆虫翅膀鳞片。
这里简单介绍了羽毛的几何形状、颜色产生背后的机制和BSDF的测量设置。表2列出了这些符号的概述。
鸟羽毛是多尺度结构(图1a)。
通常光眼看到的毛发状结构是从轴上分支出来的羽枝。羽枝又有许多侧枝:羽小枝,它们重叠在一起形成一个相当平坦的表面。羽小枝具有明显的非圆柱形截面,根据种类的不同,可能包括薄膜涂层、多层堆积或光子晶体(图2)。在本文中,我们研究了岩鸽颈羽毛(图2c),它存在薄膜结构。
(图2)
对鸟类颜色的影响主要有两种机制:色素和结构。色素的颜色来源于吸收选择性波长范围内的光的色素。黑色素是鸟类羽毛中一种几乎普遍存在的色素,吸收在非常宽的波长范围内,它也存在于人类的头发中。另一方面,结构颜色来源于角蛋白和黑素体的规则组织的微观和纳米结构,在有限的波长范围内反射光。结构色一般是有方向性的,比颜料色更明亮。 许多鸟类结合了色素和结构着色。
岩鸽颈部羽毛羽小枝颜色(图2c)表现出特殊的双色彩虹色,这是由上角蛋白层的薄膜干涉引起的。位于颈部上部的羽毛的角蛋白平均厚度为595纳米,正常情况下呈绿色。只要光照或观察角度稍有变化,颜色就会突然从绿色变成紫色 ; 颈部下部的紫色羽毛,平均角蛋白厚度为530 nm,呈斜向绿色。这种颜色的角度依赖性如图3所示。在角蛋白层以下,羽小枝为随机排列的黑色素颗粒,在可见波长范围内反射率较小且几乎恒定。它们主要是降低颜色饱和度。
(图3)
当光从薄膜的上、下边界反射时,就会发生薄膜干涉,导致光路的差异(图4)。路径差D导致光的相移Δ=2D/,其中为波长。我们将()表示为空气-角蛋白界面的菲涅尔反射(透射)系数,()表示为角蛋白-空气界面(图4左),并通过Airy公式推导出复杂的薄膜反射/透射系数和
其中,Δ=2D / =4()cos / 同时适用于反射和透射,具有角蛋白的折射率(IOR)和薄膜厚度。而强度反射率则由
这个反射被称为为R分量。
(图4)
我们用显微分光光度计(MSP)测量了一个来自正常入射的10×10 µm2点的反射光谱。图5显示了观测到的与波长相关的反射率和模拟的R分量。显然,这个分量本身不能充分描述羽小枝的反射行为,因为总的破坏性干涉出现在某些波长。有很明显的一个背景成分,它是由光通过角蛋白层传递,反射在黑色素层上,然后通过角蛋白层传递回来而产生的。我们称之为TRT组件,如图4(右)所示,计算方法为:
其中,为空气-黑色素界面的菲涅耳反射系数,相移为Δ‘=4cos’/ 。上标‘考虑了入方向和出方向不对称的可能性。在反思了随机分布的黑色素颗粒后,我们并不期望R和TRT成分会发生干扰;因此,我们只是简单地添加它们的强度等式(2)和等式(3)在一起。由于黑色素层的低反射率仅为5%,我们排除了所有涉及与黑色素层相互作用的后续成分。通过蓝色曲线与图5中测量值的相似性,验证了这一选择。
(图5)
以上分析适用于扁平薄膜;然而,球中的角蛋白膜是弯曲的,如图2c所示。我们使用由设计的测量设置,称为成像散射计(图6),来测量羽小枝几何形状对反射率的影响。由此得到的远场散射图像被称为散射图,它通过数码相机同时捕获样本的半球形反射率。例子如图所示。1b到1d。9点钟的长而尖的黑色物体是容纳样品的玻璃微管的遮挡。白色的圆圈表示的不同散射角。我们在Mitsuba2中实现了一个从各个方向观察球体原点的半球形传感器。这提供了与散射图相同的图像。
(图6)
根据扫描电镜图像,图中的散点图。1c和1d显示反射成一个宽的实心角。特别是,彩虹图案沿一个对角线方向延伸,也就是羽小枝的横向方向。在纵向上,即沿羽小枝的轴,角跨度要小得多。此外,图1c中的绿色强度低于紫色;这是由于羽小枝的边缘(用图7a中的蓝色箭头表示),因为曲率较大的表面以更宽的角度反射相同数量的光。因此,我们将纵向羽小枝剖面建模为一个小的圆形截面,方位剖面建模为具有较大角跨度的椭圆截面(图7)。由于角蛋白的IOR相对较大,我们假设光在产生反射率之前传播了相对较小的切向长度,因此在计算干涉时可以将薄膜视为局部平坦。因此,我们只考虑羽小枝曲率对反射率的角跨度的影响。更多关于弯曲薄膜干扰的讨论可以在我们的补充文件中找到。在下面的小节中,作者推导出一个新的倒数的BSDF。
BSDF (,,)描述了入射辐射和出射辐射o:
其中n为重叠羽小枝平面的法向量,(,,)=R+TRT+T为R、TRT和T 的Lobe,这个公式符合众所周知的渲染方程,但是不同于使用cos代替的纤维散射模型,作者的模型使用 〈, 〉 = cos cos ,这是因为它们的辐射度是按单位长度定义的,而该模型的辐射度是按每个区域定义的。
传统上,将散射分布函数进一步分为纵向散射函数和方位角散射函数的乘积。然而,正如争论的那样,分离会在切线角度下产生显著的伪影。因此建议类似于微面模型那样分离出正态分布函数(NDF)。
羽小枝可以被认为是由鞍状单元羽小枝细胞组成的周期结构,如图7a中的红色轮廓所示。对暴露的前表面(图7b)进行建模,其中横截面用半长轴 l 和半短轴的椭圆弧表示,纵截面用半径为、弧长为2 的圆截面表示。
重叠的羽小枝形成一个平面(“羽支平面”)(图8),这是由角围绕轴旋转的-平面。相邻的羽小枝之间的距离记为。在方位角方向上的NDF为:
其中()是在=的曲率,∈[0,1]。除以确保了∫()cos(+)d≤1。纵向上的NDF为:
组合起来的方程式。(5)和(6),我们得到:
等式(7)满足∫()<,>d=1
衍射通常产生于有规律地排列的微观结构。然而,羽小枝间距相当大并且不规则,并且彩虹色最主要的来源是薄膜。因此,我们在考虑阴影和掩蔽时应用几何光学。在以往的文献中,高度和斜率之间的相关性通常在几何术语中被忽略,因此每个法线方向都有一定的可见概率,独立于入射角度和出射角度。然而,在我们的例子中,高度和斜率之间的关系是已知的,因此每个要么总是可见的,要么总是不可见的,这取决于,。当从NDF中采样或评估时,我们实时检查或是否与两个相邻的羽小枝有交集。如果至少存在一个交集,可见性项(,,)恰好为1,则为0。这个术语是相互的。图8用紫色显示了和的可见部分。忽略多个相互反射。
对于R lobe,与和之间的半角向量重合,作为small mirrors。考虑入射到面向法向的微分表面上的微分通量dΦ。从辐射的定义出发:
具有方向为的表面的差分面积为:
其中是单位羽小枝细胞在羽支平面上的投影面积。输出通量为:
在投影区域上的差分输出辐射为:
结合上述方程和半角映射d=d/4<,wo>的值:
在法向和输出方向上的投影区域之间的比率为:
其中Δℎ()为方向的投影长度(图8),为沿轴的长度。的值在方程中被抵消了,所以他是无关的。与等式(4)比较并添加项,我们获得了R lobe的BSDF:
这正是一个微表面BRDF的形式。
在某些角度下,部分光线没有撞击球管表面(图8),导致∫()cos(−)d< cos( + ) 。不击中羽小枝表面的光线在不改变其方向和强度的情况下传播,从而产生T lobe:
黑色素颗粒将光线散射成更宽的角度。由于黑色素层的分布不规则,我们将黑色素层建模为一个弥漫性表面。TRT部分的BSDF为:
其中:
是在照明投影面积上的平均反射率。ℎ、分别为从照明方向上看到的方位角和纵向偏移量(图9)。由于是ℎ和的函数,因此上述方程无法求出解析解。我们通过在每个计算时随机选择ℎ和来隐式地计算积分。
使用Houdini进行几何建模,以及使用Mitsuba 2 using scalar_spectral variant.进行渲染。
在Houdini中,将羽毛建模为羽支曲线的集合(图10a),就像通常的羽毛梳理管道一样。具有正常方向定制和其他参数的顶点被导出为.ply文件。该几何图形由Mitsuba2中的一个自定义羽毛形状插件读取,它将生成羽支原体(图10b)。将第4.1节中描述的BSDF应用于这些羽支原语,局部渲染框架与局部羽支平面重合(图8和10b)
我们的采样策略类似于[论文: Importance sampling for
physically-based hair fiber models. ]:首先,将方位偏移ℎ和纵向偏移均匀采样(图9),然后选择三个lobe中的一个与它们的能量成比例。R lobe的概率密度函数(PDF)的计算方法与微表面模型相同,而TRT lobe的概率密度函数与漫射面相同。在算法1中说明了完整的采样过程。
在本节中,将渲染的结果与测量结果进行比较。源代码可在GitHub - RiverIntheSky/dove_neck上找到。
在图1b到1d中,作者将散射图和本文BSDF渲染的结果进行了比较,这其中渲染时使用的参数是我们指定
的,以便效果与散射图相似:
= 0.25, 0 = −0.37, 1 = 2.64, = 1.25, = 590 nm, = 0.0785, = −0.35.
在图1b(上)中,通过移除挡板2,得到了全局光照下的样品,我们在渲染器中复制它。内环中的绿色表示正常入射附近的反射率,而斜入射角(中间的环)则产生紫色。在切线角度,反射率接近1;因此,灯泡看起来淡黄色和明亮。这些特征都在图3中进行了预测,并在图1b(底部)中重现。在我们的渲染图中,左下方也存在散点图中较暗的区域,这是由于局部羽支平面的倾斜所致。我们认为,这个区域的反射率并没有完全因为羽小枝方向的随机扰动而完全下降:它们并不能在更大的尺度上完美地与一个平面对齐。我们选择不对BSDF项的随机项进行建模,而是在输出羽支曲线几何建模时,在单元羽小枝细胞的方向中添加随机噪声,因为这些扰动的影响在宏观水平上也可见(图11)。
散射图(上行)从大约16度的光源照明;对于渲染图(下一行),我们实现了等效的照明。在羽毛横向上的拉伸,绿色和紫色之间的过渡,以及右上方的较低强度,在渲染中都得到了很好的复现。在外圈大的圆形是TRT部分;由于黑色素颗粒的反射率,它的颜色大部分是棕色的;然而,在这其中也有微弱的彩虹色。更准确地说,靠近中心的颜色是紫色,外围附近是绿色,与R分量的顺序正好相反。这是因为当反射的颜色是绿色时,传输的颜色将是它的补集,即紫色,反之亦然。我们的TRT lobe模型遵循这种行为。
除此之外,将黑色素是为diffuse的假设似乎是合适的,因为散点图和渲染图都显示了相似的强度梯度,到外圈几乎看不见的程度。
作者在经过校准的外观扫描仪TAC7中进一步测量了一根岩鸽颈部的羽毛。该设备包含几个辐射测量校准的相机和光源。我们使用相机从45◦和一系列光的角度观察羽毛。图11中得到的图像经过HDR校准并转换为线性sRGB。通过在Mitsuba2中建模一个类似的场景并渲染获得的,羽毛几何与真实样本简单的匹配了。在这其中,颜色的变化、闪烁和不规则性都被很好地再现了。
图1e显示了一个有256个重叠羽毛的场景(包括1032192个羽支图元),每像素渲染256个样本,分辨率为1024×768。该图像的渲染花费了8.3 min,比 [论文:A practical extension to microfacet theory for
the modeling of varying iridescence.] 实现的普通薄膜渲染模型渲染相同的几何形状慢2.1倍。