多层非均匀材质模型真实感实时渲染方法

2018-11-17 01:26温佩芝沈嘉炜
计算机工程与设计 2018年11期
关键词:三维重建光线光照

温佩芝,周 迎+,沈嘉炜,姚 航

(1.桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004; 2.桂林电子科技大学 广西图像图形智能处理高校重点实验室,广西 桂林 541004)

0 引 言

一直以来,三维数字化建模的真实纹理表达是计算机图形学研究的难点及热点。其中多层非均匀反光类物体由于其材质表面具有的复杂高光散射特性,拍摄出来的图像不能完全体现出该特性,在基于图像的三维重建过程中也需要先去掉高光的干扰来保证几何信息和纹理信息的准确性,从而导致该类物体在基于图像的三维重建中,经过纹理贴图后物体模型会缺乏光照的真实感问题,因此多层非均匀材质物体的光照的真实感问题一直是三维逆向建模技术中的难题。

目前对三维重建物恢复真实感的研究主要是通过建立光照模型来恢复物体材质的光照信息[1-3]。但是,由于人眼对光的敏感度极高,一般的光照模型很难准确表达出视觉对多层非均匀材质的真实光泽而出现失真。在多层非均匀材质物体重建模型纹理的真实光感研究中,d′Eon E等[4]提出了一个双向散射表面反射率分布函数,该方法在高频照明下的物体图像产生了较为准确的结果,但对实验图像有相应的要求。吴一帆等[5]采用多极漫射模型扩展实现了多层非均匀材质人脸的表现,但由于采用的是经验模型,从而缺乏一定的物理真实性。温佩芝等[6]采用本地预烘焙的厚度贴图来实现光线因表面厚度不同而变化的光强,并通过光照模型线性叠加的方法实现多层非均匀半透明玉石的渲染,该方法对半透明玉石类物体效果较好,但不太适用于陶瓷类多层非均匀材质物体。Rankin等[7]采用厚度贴图来实现光线在不同材质物体内部闭塞信息的变化,实验取得了一定的效果。Zhang等[8-10]提出分层光照模型来表现多层均匀材质的特点,但对非均匀多层材质的表达效果欠佳。

基于以上分析,本文结合分层光照模型及多层非均匀高光类材质的特性,提出一种多层非均匀材质真实感实时渲染的方法。首先根据多层非均匀材质的散射特性进行次表面分层;根据光线在多层非均匀材质中的吸收、衰减关系建立表面光照模型,提出将该模型与环境光照的影响进行叠加,得到改进的分层光照模型;然后采用本地预烘培(Prepare Baking)的厚度贴图方法解决材质表面因厚度不同而造成散射不均的问题;再采用基于GGX(Trowbridge-Reitz)方法[11]改进分层光照模型中的光照分布函数。最后进行高动态图像渲染,展示出更多的模型光照细节,提高真实感。实验结果表明,本文方法较好地模拟了多层非均匀高光类材质类瓷器表面纹理的真实光感,且在模型片面数量较大的情况下,仍能保证实时渲染速率有所提高。

1 分层光照模型理论

文献[8-10]提出了分层光照模型体系,使用光照模型作为层状部件,并将层状部件作为次表面进行分层模型的物理叠加,图1为材质表面光照分层示意图,其上层为漫反射的朗伯体表面模型,下层为镜面反射模型。

图1 次表面分层

图1中光照射到多层反光材质表面时,入射光a在上层微表面产生反射光b,并透过次表面层B产生折射光c,同时折射光c在下层微表面产生反射光d,而反射光d透过上层微表面折射至物体表面形成折射光e。光线从下层微表面返回到上层微表面时会发生衰减,同时次表面层B对光线具有一定的吸收作用,由此建立的分层光照模型为

FN=F1+F2·T·t·a

(1)

式中:FN为表面光照强度;F1、F2分别为次表面层A、B的光照强度;T为菲涅尔透射系数;t为衰减项;a为吸收项式(1)中具体参数计算如下:

(1)利用Oren-Nayar漫反射模型表达投射在次表面层A的反射特性F1,见式(2)

(2)

其中,ρ为材质表面的反照率,θi为入射角,θr为反射角,m为材质表面的粗糙度。

(2)利用Torrance-Sparrow镜面反射模型表达次表面层B的反射特性F2,见式(3)

(3)

其中,D为光照分布函数,F为菲涅尔反射,G为遮挡因子,n为法线向量,v为视角向量,l为入射光线向量。

(3)衰减项t指的是光线从下层微表面返回到上层微表面时产生的光强损失

t=(1-G)+(1-T)·G

(4)

式中:T为菲尼尔透射。

(4)吸收项a指的是光线在次表面层B中被材质吸收的关系

(5)

式中:α为波长相关的吸收系数,与材质本身的吸收率有关,d为材质厚度,θ为入射角,c为折射率。

上述分层光照模型假设材质的厚度d为常数,可以较好地模拟大部分多层反光材质表面的光照。但是,本文研究的对象为瓷器类物体,其在手工拉坯、上釉、高温烧制中会造成坯面及釉面厚度参差、分布不均,导致表面光线发生散射变化,是典型的多层非均匀高光材质。直接采用上述分层光照模型进行渲染,难以获得满意的效果。

2 多层非均匀材质模型真实感实时渲染方法

2.1 多层非均匀材质光照模型

本文对图像三维重建后的瓷器模型进行分层光照渲染实验。图2(a)为原始图像、图2(b)为三维重建模型,利用分层光照模型进行渲染获得的三维重建模型如图2(c)所示。由图2(b)与图2(a)比较可见,三维重建模型表面因缺乏高光信息而显得暗淡无光;由图2(c)与图2(a)和图2(b)比较可见,经上述分层光照模型渲染后瓷器表面的光感得到了明显提升,但是,仔细观察比较,发现原始图2(a)具有明显的明暗散射现象,而图2(c)整体亮度均匀并没有体现出非均匀的特点。对此,本文提出一种改进的多层非均匀材质的光照模型。

图2 三维重建模型渲染

(1)考虑环境光影响的多层光照模型

在图像三维重建实际拍摄中,室内物体间的反射光会对拍摄物体表面产生影响,本文将环境光强加入到表面光照强度计算中,建立多层光照模型

F′=Fambdiff+FN

(6)

式中:F′为多层光照模型表面光强度,Fambdif为环境光强度,FN为式(1)中物体表面的光照强度。文献[13]将环境光表达为

Fambdif=Fa·Ka

(7)

其中,Fa为环境光亮度,Ka(0≤Ka≤1)为物体表面的环境光反射系数,大多通过实践经验选定最佳参数值。

(2)非均匀材质特性的实现

光线在多层非均匀材质内部进行散射时,其表面厚度越厚,光线衰减度越大,表面的散射光强度越弱,导致视觉表现上薄的地方光的散射明显,厚的地方散射表现较弱[12]。据此,本文对三维重建时提取的纹理贴图如图3(a)进行处理,采用厚度贴图的方法来模拟非均匀表面不同厚度导致的散射变化。由于到达表面顶点的环境光大小由环境光闭塞决定,因此越相互靠近,网格之间的闭塞信息就越多,该定义请参见文献[7],首先建立物体表面法线向量并翻转,然后利用3D工具烘培AO贴图,最后翻转顶点颜色存储贴图,得到图3(b)。

图3 获取的厚度贴图

图3(a)为重建的纹理贴图,图3(b)为获取的厚度贴图。将该厚度贴图映射到三维重建模型表面,得到渲染后的模型如图2(d)所示,对比可见,用厚度贴图改进后的瓷器三维模型表面光照表现更接近真实原始图像的物理光学特点。

2.2 改进高光反射项的计算

光照分布函数决定了高光反射的大小及形状,Alexander Wilkie等采用重要性采样的方法来计算式(3)中的光照分布函数D,即

(8)

式中:h为半角向量,m为材质表面的粗糙度。重要性采样方法是先将许多点随机分布在次表面模型上,然后在每个点预计算辐射度,最后利用这些点云信息快速查找积分,式(8)中的m次幂运算计算复杂度高,需要额外的内存开销,降低了运算速度。为了提升运算效率,本文采用NDF模型—GGX方法改进光照函数的计算[11],即

(9)

式(9)中将m次幂运算降为平方运算,降低了计算复杂度,且不需要点云分布查找积分,进一步减少了运行时内存开销,极大地提高了运算速率。而且在渲染效果上,通过图4对比可以看到GGX方法在高光中心处的光线衰减速度较快,在远离高光中心后光线衰减速度会变得缓慢,在高光亮度一定时,GGX处理后的光照信息更为丰实,更好地体现了材质表面明暗的层次感。

图4 光照分布函数对比

由于多层非均匀材质表面光学特性复杂,而图像三维重建算法在合成纹理图像时无法完全提取所有的光照信息,导致重建后模型细节丢失,产生失真。因而,本文采用高动态图像渲染,以此展示出更多的光照模型细节,提高真实感。

3 实验与分析

本文实验采用的硬件配置为IntelCore 2 DuoE7500 CPU;内存4 GB;显卡为ATI Radeon HD 4600 Series;使用Unity3D 5.0版本作为渲染工具,Shader语言为CG。本文选取两种多层非均匀材质的代表古梅瓶和现代景泰蓝艺术品作为实验研究的对象。

3.1 渲染视觉效果对比

为了便于观察和对比实验效果,本文原始图像如图5(a)、图5(d)和图6(a)为实拍的二维图像,对比实验图像如图5(b)、图5(c)、图5(e)、图5(f)和图6(b)、图6(c)、图6(d)实验图像均为三维模型渲染效果的屏幕截图也显示为二维图像,并将所有图像背景统一处理为黑色便于视觉上对比分析。

图5 梅瓶渲染对比

图6 景泰蓝艺术品光感材质渲染对比

第一组实验对象如图5所示为桂林古梅瓶,采用本文方法和分层光照模型渲染方法[10]进行对比实验,其中图5(a)为梅瓶原始拍摄图像、图5(b)为分层光照模型渲染方法图像、图5(c)为本文渲染方法图像、图5(d)为原始拍摄图像局部图、图5 (e)为分层光照模型渲染方法局部图、图5(f)为本文渲染方法局部图。

通过图5(a)、图5(b)、图5(c)对比可以观察得知,分层光照模型[10]的渲染效果中光照散射均匀而没有显示出高光的变化且高光表现比较生硬,而本文方法渲染的梅瓶整体散射明显,较好地复原了高光区的形态和色泽,视觉效果更真实。从图5(d)、图5(e)、图5(f)的局部图对比中得知,本文方法渲染的局部细节图更接近于原始拍摄图像,说明渲染效果更好。

第二组实验对象为现代艺术品景泰蓝,如图6所示,其中图6(a)为景泰蓝原始拍摄二维图像、图6(b)为经典光照模型渲染图像、图6(c)为最常见的光线跟踪算法渲染图像、图6(d)为本文方法渲染图像。

将本文方法图6(d)与图6(b)光照模型渲染方法和图6(c)的光线跟踪算法进行对比,通过比较图6(a)、图6(b)可见,采用经典光照模型渲染的图像表面高光区比较集中因此过于饱和,且经典光照模型只能对物体表面进行计算渲染,不能很好地反映多层非均匀材质复杂的物理特性。通过图6(a)、图6(c)对比可见,采用光线跟踪算法能够较好地呈现景泰蓝表面真实的光照信息,然而其计算量大,只能进行离线渲染,不能在互联网端进行实时渲染展示。通过图6(a)、图6(c)、图6(d)的对比可见,本文方法渲染的图像视觉上整体具有光线跟踪算法的优势,具有明暗的层次感,较好地复原了景泰蓝表面的光照,因此本文方法在渲染效果的视觉上具有一定的优势。

3.2 渲染速率对比

在实时性方面,本文采用不同片面数的三维模型进行了帧速率测量,并对比了光线跟踪及分层光照模型渲染的速率,结果见表1。

表1 不同片面下的渲染帧速率

一般而言,人眼可延时达到实时交互的最低帧速率为12 帧/每秒,从表中比较可以发现,本文方法在模型片面数相同时,在每秒钟渲染的帧数优于光线跟踪算法和分层光照模型算法,比如在绘制模型片面数达到160万(极高精度模型)时,本文帧速率依旧能达到每秒40 帧左右,高于光照跟踪及分层光照模型渲染速率,且为人眼实时最低效率的三倍以上,满足在线实时渲染的交互。

4 结束语

本文针对多层非均匀高光类材质经图像三维重建和纹理贴图后表面材质缺乏真实光感的问题,在分层光照模型的基础上,采用了本地预烘培厚度贴图的方法来解决多层非均匀材质表面的非均匀散射性,较好地模拟了不同厚度的散射变化;然后采用GGX方法改进光照分布函数,恢复了高光区域的物理特性,最后进行高动态图像渲染,展示出更多的模型光照细节,提高真实感。实验结果表明,该方法能够较好地模拟多层非均匀材质表面的真实感,不仅在物理上符合光学特性,并且在模型片面数量较大的情况下仍能保证实时渲染速率。但该方法仅适用于多层非均匀陶瓷类材质物体,今后需要进一步研究扩大其适用性、同时减少人工参与提升其智能性和进一步提高渲染质量和效率。

猜你喜欢
三维重建光线光照
节能环保 光照万家(公益宣传)
节能环保光照万家(公益宣传)
基于Mimics的CT三维重建应用分析
春光照瑶乡
“你看不见我”
基于关系图的无人机影像三维重建
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
淘气的光线
多排螺旋CT三维重建在颌面部美容中的应用
服装CAD系统中的光照面向对象分析