王 瑩,王延杰,周渝人.2,李靜宇,姚志軍
(1. 中國科學(xué)院 長春光學(xué)精密機(jī)械與物理研究所, 吉林 長春130033;2. 中國科學(xué)院大學(xué),北京100049)
紋理映射是一門廣泛應(yīng)用于計(jì)算機(jī)圖形學(xué)中的技術(shù),尤其是在大型虛擬仿真系統(tǒng)增加虛擬模型真實(shí)性方面。最簡單的紋理映射為定義紋理圖片的4個(gè)頂點(diǎn)坐標(biāo)(u,v)與模型相應(yīng)的4個(gè)頂點(diǎn)坐標(biāo)綁定,將紋理圖片直接覆蓋到模型的表面。對于簡單模型可以起到增加虛擬模型真實(shí)性的目的,對于復(fù)雜度較高的模型我們常用的方法是調(diào)和紋理映射[1-9]。即借助一個(gè)參數(shù)化平面,通過指定模型與紋理相對應(yīng)的特征點(diǎn)將紋理圖片調(diào)和映射到模型的指定位置。
國內(nèi)外對于調(diào)和紋理映射具有代表性的工作有:文獻(xiàn)[2]能夠處理任意特征的多邊形紋理映射,將形變作為目的函數(shù),該算法僅在特征點(diǎn)較少時(shí)可以保持紋理的有效性。文獻(xiàn)[3]為ABF(Angle-Based Flattening)基本算法,在模型映射到二維平面過程中保持角度的變形性最小,該算法可能導(dǎo)致長度形變或者面積形變的增大。文獻(xiàn)[5]是基于ABF算法旨在減少由ABF算法引起的長度形變。文獻(xiàn)[6]預(yù)先對模型進(jìn)行參數(shù)化,可保持紋理的有效性,算法復(fù)雜度高效率較低。
本文針對經(jīng)典算法在保持紋理有效性的情況下算法復(fù)雜度高效率低的問題,提出了一種自適應(yīng)選取目標(biāo)函數(shù)的調(diào)和紋理映射方法。通過將三維模型映射到二維參數(shù)平面,在紋理圖片及參數(shù)平面上設(shè)定相對應(yīng)的特征點(diǎn),并分別三角化。對于模型三角化后的每一個(gè)三角塊分別計(jì)算其內(nèi)部所有頂點(diǎn)的評估值,并將評估值的平均值與閾值σ1、σ2相比較。根據(jù)比較結(jié)果的不同選擇不同的目標(biāo)函數(shù)來計(jì)算非特征約束點(diǎn)的紋理坐標(biāo)值。
實(shí)驗(yàn)表明本文算法可以保持紋理的有效性,且算法的復(fù)雜程度低計(jì)算時(shí)間短。
首先給出自定義參數(shù):
fii=1,2.....n表示三角形面片序列。其中n為網(wǎng)格模型中三角形的總個(gè)數(shù)。
Nkk=1,2....m為節(jié)點(diǎn)序列。m為網(wǎng)格模型內(nèi)部節(jié)點(diǎn)個(gè)數(shù)。
S2DArear(fi),S3DArear(fi)為面片fi分別在參數(shù)平面和三維網(wǎng)格模型上的面積。
如圖1所示分別為人臉模型的三維網(wǎng)格模型和相應(yīng)的參數(shù)平面。
圖1 三維網(wǎng)格模型Fig.1 3D mesh model
我們利用Sheffer[4]介紹的4個(gè)約束條件來快速判斷平面化三角形的有效性。即:
約束條件(1)保證了三角形的朝向,即防止三角形翻轉(zhuǎn)的發(fā)生,(2)保證了每個(gè)三角形面片的有效性。約束條件(3)保證在一個(gè)頂點(diǎn)周圍所有的三角形必須處以同一個(gè)平面,并且和條件(4)一起保證了參數(shù)平面在拓?fù)浣Y(jié)構(gòu)的合理性。
三維網(wǎng)格模型映射平面過程中,處于深度z不同的邊極易發(fā)生交叉。對于這樣的邊,考慮算法的復(fù)雜度將不再計(jì)算與這條邊所關(guān)聯(lián)的三角形的變形程度。
對參數(shù)平面和紋理圖片分別指定相對應(yīng)的特征點(diǎn),特征點(diǎn)的個(gè)數(shù)視模型細(xì)節(jié)程度而定。根據(jù)特征點(diǎn)的位置分別進(jìn)行Delaunay三角化,將三角化后的塊分別記為Mi,Pj。其中i,j分別表示參數(shù)平面和紋理圖片三角化后塊的序列。如圖2所示為三維模型及平面參數(shù)后的效果圖。圖3所示為已標(biāo)定特征點(diǎn)[10]紋理圖像及特征點(diǎn)三角化后的圖片。
圖2 參數(shù)平面特征點(diǎn)Fig.2 Feature points on parameter plane
圖3 紋理圖片特征點(diǎn)及三角化Fig.3 Feature points on texture image and triangulation
設(shè)函數(shù)
i=1...x.
(1)
為評估函數(shù)。其中:x表示頂點(diǎn)NK處的三角形的個(gè)數(shù)。ρ1,ρ2(ρ1,ρ2>0)為權(quán)重值。第一部分表示頂點(diǎn)NK相關(guān)的所有三角形面片在參數(shù)平面上的面積和與在原始網(wǎng)格上面積和之比;第二部分表示頂點(diǎn)NK相關(guān)的所有角在參數(shù)平面上角度與原始網(wǎng)格上角度差的平方和與在原始網(wǎng)格模型上角度平方和之比。對于不同的模型可以改變?chǔ)?,ρ2的值以使角度和三角形面積對映射產(chǎn)生不同的影響。本文算法實(shí)驗(yàn)中ρ1,ρ2均取值為0.5。
對于三角化后的參數(shù)平面計(jì)算Mi的所有內(nèi)部頂點(diǎn)的評估值Ei,i=1...mi(mi為三角塊Mi內(nèi)部頂點(diǎn)的個(gè)數(shù)),給定一個(gè)閾值[11]σ1,σ2(0<σ1<σ2)。當(dāng)表達(dá)式E(Mi)=∑Ei/mi<σ1時(shí)我們將這種情況記作:A(輕微變形區(qū)域);當(dāng)E(Mi)=∑Ei/m>σ2,記作:C(劇烈變形區(qū)域);當(dāng)E(Mi)=∑Ei/m處于(σ1,σ2)之間時(shí)記作:B(適度變形區(qū)域)。
對于非特征點(diǎn)紋理坐標(biāo)的計(jì)算,在過去的研究中主要有保持角度形變最小和保持邊形變最小兩種映射算法。
Sheffer[3]提出一種保角的參數(shù)化方法ABF,通過保持三維網(wǎng)格模型和參數(shù)化后網(wǎng)格上對應(yīng)網(wǎng)格點(diǎn)所依附邊角度分布的一致,求解一個(gè)關(guān)于角度的目標(biāo)函數(shù)。
(2)
其中:λ,μ,v為權(quán)重值。
我們只需將模型和紋理圖片上的指定的特征點(diǎn)代入公式(2),通過最小化該目標(biāo)函數(shù)得到一個(gè)角度矩陣。根據(jù)已知的特征點(diǎn)坐標(biāo)和相應(yīng)的角度三角函數(shù)值計(jì)算其余點(diǎn)的紋理坐標(biāo)值。
由于該算法在變形比率比較大的網(wǎng)格曲面上可能引起長度形變或者面積形變,但是其適用范圍廣泛不必預(yù)先定義邊界,因此在本文算法中對于情況A我們采用保角映射算法計(jì)算非約束點(diǎn)的紋理坐標(biāo)值。
對于劇烈變形區(qū)域即C類情況我們采用邊變形最小來計(jì)算非特征約束點(diǎn)的紋理坐標(biāo)。目標(biāo)函數(shù)如式(3)所示:
(3)
將已知設(shè)定特征點(diǎn)的坐標(biāo)代入公式(3),其余的非特征點(diǎn)的坐標(biāo)值通過解公式(3)的最小值得到。
公式(3)中第一部分表示紋理映射坐標(biāo)與原始頂點(diǎn)坐標(biāo)的偏離程度。第二部分主要影響映射區(qū)域的光滑程度。在本文算法中ε取0.45映射效果最好。
(3)對于情況B我們將三角形塊繼續(xù)分塊,對每個(gè)小三角形面片同樣計(jì)算其內(nèi)部所有頂點(diǎn)的評估函數(shù)值[12]。用評估函數(shù)和的均值跟閾值ρ1,ρ2相比較判斷每一個(gè)小塊采用哪種目標(biāo)函數(shù)。即迭代思想,通常只需迭代一到兩次即可。
實(shí)驗(yàn)環(huán)境為 Pentium(R) dual-Core CPU E5300 2.6G,內(nèi)存為2G,操作系統(tǒng)Microsoft Windows XP,Inter(R) G33/G31顯卡,編程環(huán)境為VC++2010調(diào)用OpenGL。在實(shí)驗(yàn)結(jié)果比較中以MinE代表邊變形最小算法。
由于我們采用分塊映射的方法在不同三角塊之間的邊界頂點(diǎn)極易出現(xiàn)計(jì)算得到的紋理坐標(biāo)不一致的紋理,對于這種情況我們采取取平均值的方法確定邊界的紋理坐標(biāo)值。
如圖4所示為本文算法將人臉照片映射到臉部模型上的映射效果圖。
圖4 人臉模型映射效果Fig.4 Mapping results of Face model
可以看出人臉照片五官都正確地映射到臉部模型的五官位置上,說明本文算法將紋理圖片正確的映射到了三維模型上。但是不難發(fā)現(xiàn)鼻子處紋理映射位置不夠精確。局部映射效果如圖5所示。對于局部特征點(diǎn)周圍的紋理坐標(biāo)映射不精確的問題,我們采用文獻(xiàn)[7]的自適應(yīng)局部鄰域調(diào)整方法。只調(diào)整頂點(diǎn)vi以及距離vi較近的一階或者二階頂點(diǎn)的紋理坐標(biāo)值,原則為移動(dòng)局部頂點(diǎn)的位置但不影響整體的拓?fù)浣Y(jié)構(gòu)。考慮算法復(fù)雜度這里我們只計(jì)算到頂點(diǎn)vi的二階領(lǐng)域的頂點(diǎn)的紋理坐標(biāo)值。
圖5 局部紋理Fig.5 Local texture
如圖6(a)所示,當(dāng)調(diào)整鼻子周圍4個(gè)特征點(diǎn)的紋理坐標(biāo)值時(shí),依次計(jì)算4個(gè)特征點(diǎn)的一階領(lǐng)域頂點(diǎn)的變化量Δt(t階領(lǐng)域頂點(diǎn)紋理坐標(biāo)調(diào)整前后的變化量)。若小于提前定義的閾值Δθ則停止計(jì)算,否則計(jì)算其二階頂點(diǎn)的紋理坐標(biāo)的變化量。圖6(b)所示為調(diào)整4個(gè)特征點(diǎn)紋理坐標(biāo)值后的效果圖,圖6(c)為從不同觀察角度看到的效果圖。算法中只計(jì)算了4個(gè)特征頂點(diǎn)的一階領(lǐng)域點(diǎn)的位置。
(a)局部頂點(diǎn)(a) local vertex
(b)調(diào)整后側(cè)視圖 (c)局部調(diào)整后正視圖(b) side view after the adjustment (c) front view after the adjustment圖6 局部頂點(diǎn)位置調(diào)整后效果圖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所示分別為貓頭面具的三維網(wǎng)格模型,相應(yīng)的紋理圖片,圖7c為本文算法處理后的映射效果圖。由圖可以看到老虎的鼻子精確映射到了貓頭面具的鼻子上。因?yàn)楸旧砟P偷奶卣鼽c(diǎn)較多算法計(jì)算時(shí)間較長,所以對于貓頭面具的胡須和尖牙我們采用默認(rèn)紋理映射。
如圖8(a)、(b)分別為魚的三維網(wǎng)格模型和相應(yīng)的紋理圖片。圖8(c)、(d)、(e)為本文算法將紋理圖片映射到三維模型上在不同觀察位置的效果圖。圖8(f)為本文算法以相同的紋理坐標(biāo)將黑白相間的圖片映射到模型上的效果圖,圖8(g)為保角映射算法映射效果圖,圖8(h)為邊變形最小算法映射效果圖。由圖中可以明顯看到保角映射算法和變形最小算法在魚脊處紋理明顯失真,且保角映射算法失真度更大,而本文算法沒有使紋理圖片失真,由此可知本文算法優(yōu)于經(jīng)典算法。
表1 實(shí)驗(yàn)數(shù)據(jù)
表1分別為臉部模型、貓頭面具模型和魚模型頂點(diǎn)/面片個(gè)數(shù)、約束點(diǎn)個(gè)數(shù)和算法運(yùn)行時(shí)間的具體信息。由表1可知本文算法在計(jì)算時(shí)間上較經(jīng)典算法有明顯提高,平均提高75%以上,并且本文對多個(gè)模型進(jìn)行多次實(shí)驗(yàn)并將紋理映射后的模型加載到幀頻高于100幀/s的實(shí)時(shí)渲染系統(tǒng)中,發(fā)現(xiàn)本文算法可以很好地保持紋理的有效性。
提出了一種根據(jù)分塊三角形內(nèi)部頂點(diǎn)的評估函數(shù)平均值選擇目標(biāo)函數(shù)的紋理映射方法。分析了映射過程中出現(xiàn)的問題并給出了有效的解決方法。在保持整體拓?fù)浣Y(jié)構(gòu)不變的同時(shí)調(diào)整局部頂點(diǎn)的坐標(biāo)來解決局部映射不精確的問題。實(shí)驗(yàn)證明本文方法具有以下優(yōu)點(diǎn):
(1)魯棒性好。因?yàn)橥ㄟ^將本文算法映射后的模型加載到高幀頻實(shí)時(shí)渲染系統(tǒng)中,發(fā)現(xiàn)本文算法能夠保持紋理的有效性。
(2)交互性簡單,整體性強(qiáng)。本文算法只需指定模型與紋理圖片上相對應(yīng)的特征頂點(diǎn)即可,不需要額外的人工交互;并且算法是針對整個(gè)網(wǎng)格模型進(jìn)行操作,避免了單獨(dú)分塊處理產(chǎn)生的邊界變形問題。
(3)算法速度快、效率高。只需要計(jì)算內(nèi)部頂點(diǎn)的評估值,通過評估值與閾值的比較自適應(yīng)的選取目標(biāo)函數(shù)即可,相較于經(jīng)典映射算法時(shí)間復(fù)雜度平均提高75%以上,所以即使是對大型網(wǎng)格模型也具有很高的計(jì)算效率。
調(diào)和紋理映射目前都需要交互選取特征頂點(diǎn)并分塊映射到網(wǎng)格模型中,對于復(fù)雜度高的模型特征點(diǎn)相對多,算法復(fù)雜度也就會(huì)提高,因此如何根據(jù)細(xì)節(jié)特征自動(dòng)檢測選取特征點(diǎn),從而提高算法的易操作性是下一步要攻克的主要難題。
[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] 丁南南, 劉艷瀅, 朱明.尺度相互作用墨西哥帽小波提取圖像特征點(diǎn)[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] 吳一全,孟天亮,王凱.基于斜分倒數(shù)交叉熵和蜂群優(yōu)化的火焰圖像閾值選取[J].光學(xué)精密工程,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] 楊利紅,趙變紅,張星祥,等.點(diǎn)擴(kuò)散函數(shù)高斯擬合估計(jì)與遙感圖像恢復(fù)[J].中國光學(xué),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)