王 瑩,王延杰,周渝人.2,李靜宇,姚志軍
(1. 中國科學院 長春光學精密機械與物理研究所, 吉林 長春130033;2. 中國科學院大學,北京100049)
紋理映射是一門廣泛應用于計算機圖形學中的技術,尤其是在大型虛擬仿真系統增加虛擬模型真實性方面。最簡單的紋理映射為定義紋理圖片的4個頂點坐標(u,v)與模型相應的4個頂點坐標綁定,將紋理圖片直接覆蓋到模型的表面。對于簡單模型可以起到增加虛擬模型真實性的目的,對于復雜度較高的模型我們常用的方法是調和紋理映射[1-9]。即借助一個參數化平面,通過指定模型與紋理相對應的特征點將紋理圖片調和映射到模型的指定位置。
國內外對于調和紋理映射具有代表性的工作有:文獻[2]能夠處理任意特征的多邊形紋理映射,將形變作為目的函數,該算法僅在特征點較少時可以保持紋理的有效性。文獻[3]為ABF(Angle-Based Flattening)基本算法,在模型映射到二維平面過程中保持角度的變形性最小,該算法可能導致長度形變或者面積形變的增大。文獻[5]是基于ABF算法旨在減少由ABF算法引起的長度形變。文獻[6]預先對模型進行參數化,可保持紋理的有效性,算法復雜度高效率較低。
本文針對經典算法在保持紋理有效性的情況下算法復雜度高效率低的問題,提出了一種自適應選取目標函數的調和紋理映射方法。通過將三維模型映射到二維參數平面,在紋理圖片及參數平面上設定相對應的特征點,并分別三角化。對于模型三角化后的每一個三角塊分別計算其內部所有頂點的評估值,并將評估值的平均值與閾值σ1、σ2相比較。根據比較結果的不同選擇不同的目標函數來計算非特征約束點的紋理坐標值。
實驗表明本文算法可以保持紋理的有效性,且算法的復雜程度低計算時間短。
首先給出自定義參數:
fii=1,2.....n表示三角形面片序列。其中n為網格模型中三角形的總個數。


Nkk=1,2....m為節點序列。m為網格模型內部節點個數。



S2DArear(fi),S3DArear(fi)為面片fi分別在參數平面和三維網格模型上的面積。
如圖1所示分別為人臉模型的三維網格模型和相應的參數平面。

圖1 三維網格模型Fig.1 3D mesh model
我們利用Sheffer[4]介紹的4個約束條件來快速判斷平面化三角形的有效性。即:

約束條件(1)保證了三角形的朝向,即防止三角形翻轉的發生,(2)保證了每個三角形面片的有效性。約束條件(3)保證在一個頂點周圍所有的三角形必須處以同一個平面,并且和條件(4)一起保證了參數平面在拓撲結構的合理性。
三維網格模型映射平面過程中,處于深度z不同的邊極易發生交叉。對于這樣的邊,考慮算法的復雜度將不再計算與這條邊所關聯的三角形的變形程度。
對參數平面和紋理圖片分別指定相對應的特征點,特征點的個數視模型細節程度而定。根據特征點的位置分別進行Delaunay三角化,將三角化后的塊分別記為Mi,Pj。其中i,j分別表示參數平面和紋理圖片三角化后塊的序列。如圖2所示為三維模型及平面參數后的效果圖。圖3所示為已標定特征點[10]紋理圖像及特征點三角化后的圖片。

圖2 參數平面特征點Fig.2 Feature points on parameter plane

圖3 紋理圖片特征點及三角化Fig.3 Feature points on texture image and triangulation
設函數
i=1...x.
(1)
為評估函數。其中:x表示頂點NK處的三角形的個數。ρ1,ρ2(ρ1,ρ2>0)為權重值。第一部分表示頂點NK相關的所有三角形面片在參數平面上的面積和與在原始網格上面積和之比;第二部分表示頂點NK相關的所有角在參數平面上角度與原始網格上角度差的平方和與在原始網格模型上角度平方和之比。對于不同的模型可以改變ρ1,ρ2的值以使角度和三角形面積對映射產生不同的影響。本文算法實驗中ρ1,ρ2均取值為0.5。
對于三角化后的參數平面計算Mi的所有內部頂點的評估值Ei,i=1...mi(mi為三角塊Mi內部頂點的個數),給定一個閾值[11]σ1,σ2(0<σ1<σ2)。當表達式E(Mi)=∑Ei/mi<σ1時我們將這種情況記作:A(輕微變形區域);當E(Mi)=∑Ei/m>σ2,記作:C(劇烈變形區域);當E(Mi)=∑Ei/m處于(σ1,σ2)之間時記作:B(適度變形區域)。
對于非特征點紋理坐標的計算,在過去的研究中主要有保持角度形變最小和保持邊形變最小兩種映射算法。
Sheffer[3]提出一種保角的參數化方法ABF,通過保持三維網格模型和參數化后網格上對應網格點所依附邊角度分布的一致,求解一個關于角度的目標函數。
(2)
其中:λ,μ,v為權重值。
我們只需將模型和紋理圖片上的指定的特征點代入公式(2),通過最小化該目標函數得到一個角度矩陣。根據已知的特征點坐標和相應的角度三角函數值計算其余點的紋理坐標值。
由于該算法在變形比率比較大的網格曲面上可能引起長度形變或者面積形變,但是其適用范圍廣泛不必預先定義邊界,因此在本文算法中對于情況A我們采用保角映射算法計算非約束點的紋理坐標值。
對于劇烈變形區域即C類情況我們采用邊變形最小來計算非特征約束點的紋理坐標。目標函數如式(3)所示:
(3)


將已知設定特征點的坐標代入公式(3),其余的非特征點的坐標值通過解公式(3)的最小值得到。
公式(3)中第一部分表示紋理映射坐標與原始頂點坐標的偏離程度。第二部分主要影響映射區域的光滑程度。在本文算法中ε取0.45映射效果最好。
(3)對于情況B我們將三角形塊繼續分塊,對每個小三角形面片同樣計算其內部所有頂點的評估函數值[12]。用評估函數和的均值跟閾值ρ1,ρ2相比較判斷每一個小塊采用哪種目標函數。即迭代思想,通常只需迭代一到兩次即可。
實驗環境為 Pentium(R) dual-Core CPU E5300 2.6G,內存為2G,操作系統Microsoft Windows XP,Inter(R) G33/G31顯卡,編程環境為VC++2010調用OpenGL。在實驗結果比較中以MinE代表邊變形最小算法。
由于我們采用分塊映射的方法在不同三角塊之間的邊界頂點極易出現計算得到的紋理坐標不一致的紋理,對于這種情況我們采取取平均值的方法確定邊界的紋理坐標值。
如圖4所示為本文算法將人臉照片映射到臉部模型上的映射效果圖。

圖4 人臉模型映射效果Fig.4 Mapping results of Face model
可以看出人臉照片五官都正確地映射到臉部模型的五官位置上,說明本文算法將紋理圖片正確的映射到了三維模型上。但是不難發現鼻子處紋理映射位置不夠精確。局部映射效果如圖5所示。對于局部特征點周圍的紋理坐標映射不精確的問題,我們采用文獻[7]的自適應局部鄰域調整方法。只調整頂點vi以及距離vi較近的一階或者二階頂點的紋理坐標值,原則為移動局部頂點的位置但不影響整體的拓撲結構。考慮算法復雜度這里我們只計算到頂點vi的二階領域的頂點的紋理坐標值。

圖5 局部紋理Fig.5 Local texture
如圖6(a)所示,當調整鼻子周圍4個特征點的紋理坐標值時,依次計算4個特征點的一階領域頂點的變化量Δt(t階領域頂點紋理坐標調整前后的變化量)。若小于提前定義的閾值Δθ則停止計算,否則計算其二階頂點的紋理坐標的變化量。圖6(b)所示為調整4個特征點紋理坐標值后的效果圖,圖6(c)為從不同觀察角度看到的效果圖。算法中只計算了4個特征頂點的一階領域點的位置。

(a)局部頂點(a) local vertex

(b)調整后側視圖 (c)局部調整后正視圖(b) side view after the adjustment (c) front view after the adjustment圖6 局部頂點位置調整后效果圖Fig.6 After adjust the local vertex position
對于映射完畢的三維模型我們采用拉普拉斯光滑算子來平滑映射效果。

(a)貓頭面具 (b)老虎紋理 (c)映射效果圖(a) owl mask (b)tiger texture (c)After mapping圖7 貓頭面具映射效果圖Fig.7 Mapping results of owl mask

(a)魚模型 (b) 紋理圖片 (a)Fish model (b) Texture map

(c)右視圖 (d)左視圖(c)Right side (d) Left side

(e)正視圖 (f)棋盤格圖片映射效果 (e) Front view (f)Checkerboard mapping

(g)ABF映射效果 (h)邊變形最小映射效果 (g) ABF mapping (h) MinE圖8 魚模型映射效果圖Fig.8 Mapping results of fish model
如圖7所示為貓頭面具模型映射老虎圖片的效果圖。圖7a、b所示分別為貓頭面具的三維網格模型,相應的紋理圖片,圖7c為本文算法處理后的映射效果圖。由圖可以看到老虎的鼻子精確映射到了貓頭面具的鼻子上。因為本身模型的特征點較多算法計算時間較長,所以對于貓頭面具的胡須和尖牙我們采用默認紋理映射。
如圖8(a)、(b)分別為魚的三維網格模型和相應的紋理圖片。圖8(c)、(d)、(e)為本文算法將紋理圖片映射到三維模型上在不同觀察位置的效果圖。圖8(f)為本文算法以相同的紋理坐標將黑白相間的圖片映射到模型上的效果圖,圖8(g)為保角映射算法映射效果圖,圖8(h)為邊變形最小算法映射效果圖。由圖中可以明顯看到保角映射算法和變形最小算法在魚脊處紋理明顯失真,且保角映射算法失真度更大,而本文算法沒有使紋理圖片失真,由此可知本文算法優于經典算法。

表1 實驗數據
表1分別為臉部模型、貓頭面具模型和魚模型頂點/面片個數、約束點個數和算法運行時間的具體信息。由表1可知本文算法在計算時間上較經典算法有明顯提高,平均提高75%以上,并且本文對多個模型進行多次實驗并將紋理映射后的模型加載到幀頻高于100幀/s的實時渲染系統中,發現本文算法可以很好地保持紋理的有效性。
提出了一種根據分塊三角形內部頂點的評估函數平均值選擇目標函數的紋理映射方法。分析了映射過程中出現的問題并給出了有效的解決方法。在保持整體拓撲結構不變的同時調整局部頂點的坐標來解決局部映射不精確的問題。實驗證明本文方法具有以下優點:
(1)魯棒性好。因為通過將本文算法映射后的模型加載到高幀頻實時渲染系統中,發現本文算法能夠保持紋理的有效性。
(2)交互性簡單,整體性強。本文算法只需指定模型與紋理圖片上相對應的特征頂點即可,不需要額外的人工交互;并且算法是針對整個網格模型進行操作,避免了單獨分塊處理產生的邊界變形問題。
(3)算法速度快、效率高。只需要計算內部頂點的評估值,通過評估值與閾值的比較自適應的選取目標函數即可,相較于經典映射算法時間復雜度平均提高75%以上,所以即使是對大型網格模型也具有很高的計算效率。
調和紋理映射目前都需要交互選取特征頂點并分塊映射到網格模型中,對于復雜度高的模型特征點相對多,算法復雜度也就會提高,因此如何根據細節特征自動檢測選取特征點,從而提高算法的易操作性是下一步要攻克的主要難題。
[1] Bruno L,Jean L M.Non distorted texture mapping for sheared triangulated meshes [J].Proc.ofSgigarph98,1998,6(3):343-352.
[2] Bruno L.Constrained texture mapping for polygonal meshes [J].EngineeringwithComputers,2001, 11(5):679-689.
[3] Sheffer A,de Sturler E.Parameterization of faceted surfaces for meshing using angle-based flattening [J].Enginee-ringwithComputers,2001,17(1): 326-337.
[4] Alla S T, de Eric T. Smoothing an overlay grid to minimize linear distortion in texture mapping [J].ACMTransactionsonGraphics,2002, 21(4): 874-890.
[5] Kraevoy V, Sheffer A, Gotsman C. Matchmaker: constructing constrained texture maps [J].ACMTrans.Graphics,2003,22(3): 326-333.
[6] Guo Y W, Pan Y J,Cui X F,etal.Harmonic maps based constrained texture mapping method [J].JournalofComputerAidedDesign&ComputerGraphics,2005,7(17): 1358-1370.
[7] Lee T Y, Yen S W, Yeh I C. Texture mapping with hard constraints using warping scheme [J].TransactionsonVisualizationandComputerGraphics,2008,14(2): 382-395.
[8] Se′bastien H, Anatole L, Tony R,etal.Design and application of real-time visual attention model for the exploration of 3D virtual environments [J].TransactionsonVisualizationandComputerGraphics,2012,18(3): 356-368.
[9] Yu H C, Lee T Y, Cheng Y,etal.RBF-based reparameterization method for constrained texture mapping [J].TransactionsonJournalName,2012,8(2): 785-796.
[10] 丁南南, 劉艷瀅, 朱明.尺度相互作用墨西哥帽小波提取圖像特征點[J].液晶與顯示,2012,27(1):125-129.
Ding N N, Liu Y Y, Zhu M. Extracting image feature points using scale-interaction of mexican-hat wavelets [J].ChineseJournalofLiquidCrystalsandDisplays,2012,27(1): 125-129.(in Chinese)
[11] 吳一全,孟天亮,王凱.基于斜分倒數交叉熵和蜂群優化的火焰圖像閾值選取[J].光學精密工程,2014,2(1):235-243.
Wu Y Q, Meng T L, Wang K. Threshold selection of flame image based on reciprocal cross entropy and bee colony optimization [J].Opt.PrecisionEng.,2014,2(1):235-243. (in Chinese)
[12] 楊利紅,趙變紅,張星祥,等.點擴散函數高斯擬合估計與遙感圖像恢復[J].中國光學,2012,5(2):181-188.
Yang L H, Zhao B H, Zhang X H,etal.Gaussian fitted estimation of point spread function and remote sensing image restoration [J].ChinesOptics,2012,5(2):181-188.(in Chinese)