溫佩芝,周 迎+,沈嘉煒,姚 航
(1.桂林電子科技大學 計算機與信息安全學院,廣西 桂林 541004; 2.桂林電子科技大學 廣西圖像圖形智能處理高校重點實驗室,廣西 桂林 541004)
一直以來,三維數字化建模的真實紋理表達是計算機圖形學研究的難點及熱點。其中多層非均勻反光類物體由于其材質表面具有的復雜高光散射特性,拍攝出來的圖像不能完全體現出該特性,在基于圖像的三維重建過程中也需要先去掉高光的干擾來保證幾何信息和紋理信息的準確性,從而導致該類物體在基于圖像的三維重建中,經過紋理貼圖后物體模型會缺乏光照的真實感問題,因此多層非均勻材質物體的光照的真實感問題一直是三維逆向建模技術中的難題。
目前對三維重建物恢復真實感的研究主要是通過建立光照模型來恢復物體材質的光照信息[1-3]。但是,由于人眼對光的敏感度極高,一般的光照模型很難準確表達出視覺對多層非均勻材質的真實光澤而出現失真。在多層非均勻材質物體重建模型紋理的真實光感研究中,d′Eon E等[4]提出了一個雙向散射表面反射率分布函數,該方法在高頻照明下的物體圖像產生了較為準確的結果,但對實驗圖像有相應的要求。吳一帆等[5]采用多極漫射模型擴展實現了多層非均勻材質人臉的表現,但由于采用的是經驗模型,從而缺乏一定的物理真實性。溫佩芝等[6]采用本地預烘焙的厚度貼圖來實現光線因表面厚度不同而變化的光強,并通過光照模型線性疊加的方法實現多層非均勻半透明玉石的渲染,該方法對半透明玉石類物體效果較好,但不太適用于陶瓷類多層非均勻材質物體。Rankin等[7]采用厚度貼圖來實現光線在不同材質物體內部閉塞信息的變化,實驗取得了一定的效果。Zhang等[8-10]提出分層光照模型來表現多層均勻材質的特點,但對非均勻多層材質的表達效果欠佳。
基于以上分析,本文結合分層光照模型及多層非均勻高光類材質的特性,提出一種多層非均勻材質真實感實時渲染的方法。首先根據多層非均勻材質的散射特性進行次表面分層;根據光線在多層非均勻材質中的吸收、衰減關系建立表面光照模型,提出將該模型與環境光照的影響進行疊加,得到改進的分層光照模型;然后采用本地預烘培(Prepare Baking)的厚度貼圖方法解決材質表面因厚度不同而造成散射不均的問題;再采用基于GGX(Trowbridge-Reitz)方法[11]改進分層光照模型中的光照分布函數。最后進行高動態圖像渲染,展示出更多的模型光照細節,提高真實感。實驗結果表明,本文方法較好地模擬了多層非均勻高光類材質類瓷器表面紋理的真實光感,且在模型片面數量較大的情況下,仍能保證實時渲染速率有所提高。
文獻[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(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)所示,對比可見,用厚度貼圖改進后的瓷器三維模型表面光照表現更接近真實原始圖像的物理光學特點。
光照分布函數決定了高光反射的大小及形狀,Alexander Wilkie等采用重要性采樣的方法來計算式(3)中的光照分布函數D,即
(8)
式中:h為半角向量,m為材質表面的粗糙度。重要性采樣方法是先將許多點隨機分布在次表面模型上,然后在每個點預計算輻射度,最后利用這些點云信息快速查找積分,式(8)中的m次冪運算計算復雜度高,需要額外的內存開銷,降低了運算速度。為了提升運算效率,本文采用NDF模型—GGX方法改進光照函數的計算[11],即
(9)
式(9)中將m次冪運算降為平方運算,降低了計算復雜度,且不需要點云分布查找積分,進一步減少了運行時內存開銷,極大地提高了運算速率。而且在渲染效果上,通過圖4對比可以看到GGX方法在高光中心處的光線衰減速度較快,在遠離高光中心后光線衰減速度會變得緩慢,在高光亮度一定時,GGX處理后的光照信息更為豐實,更好地體現了材質表面明暗的層次感。

圖4 光照分布函數對比
由于多層非均勻材質表面光學特性復雜,而圖像三維重建算法在合成紋理圖像時無法完全提取所有的光照信息,導致重建后模型細節丟失,產生失真。因而,本文采用高動態圖像渲染,以此展示出更多的光照模型細節,提高真實感。
本文實驗采用的硬件配置為IntelCore 2 DuoE7500 CPU;內存4 GB;顯卡為ATI Radeon HD 4600 Series;使用Unity3D 5.0版本作為渲染工具,Shader語言為CG。本文選取兩種多層非均勻材質的代表古梅瓶和現代景泰藍藝術品作為實驗研究的對象。
為了便于觀察和對比實驗效果,本文原始圖像如圖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)的對比可見,本文方法渲染的圖像視覺上整體具有光線跟蹤算法的優勢,具有明暗的層次感,較好地復原了景泰藍表面的光照,因此本文方法在渲染效果的視覺上具有一定的優勢。
在實時性方面,本文采用不同片面數的三維模型進行了幀速率測量,并對比了光線跟蹤及分層光照模型渲染的速率,結果見表1。

表1 不同片面下的渲染幀速率
一般而言,人眼可延時達到實時交互的最低幀速率為12 幀/每秒,從表中比較可以發現,本文方法在模型片面數相同時,在每秒鐘渲染的幀數優于光線跟蹤算法和分層光照模型算法,比如在繪制模型片面數達到160萬(極高精度模型)時,本文幀速率依舊能達到每秒40 幀左右,高于光照跟蹤及分層光照模型渲染速率,且為人眼實時最低效率的三倍以上,滿足在線實時渲染的交互。
本文針對多層非均勻高光類材質經圖像三維重建和紋理貼圖后表面材質缺乏真實光感的問題,在分層光照模型的基礎上,采用了本地預烘培厚度貼圖的方法來解決多層非均勻材質表面的非均勻散射性,較好地模擬了不同厚度的散射變化;然后采用GGX方法改進光照分布函數,恢復了高光區域的物理特性,最后進行高動態圖像渲染,展示出更多的模型光照細節,提高真實感。實驗結果表明,該方法能夠較好地模擬多層非均勻材質表面的真實感,不僅在物理上符合光學特性,并且在模型片面數量較大的情況下仍能保證實時渲染速率。但該方法僅適用于多層非均勻陶瓷類材質物體,今后需要進一步研究擴大其適用性、同時減少人工參與提升其智能性和進一步提高渲染質量和效率。