萬(wàn) 燕 王慧潔 魯 俊
基于三角網(wǎng)格模型的紋理映射研究
萬(wàn) 燕 王慧潔 魯 俊
(東華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 上海 201620)
紋理映射可以在不增加三維模型復(fù)雜度的前提下很好地表現(xiàn)三維模型表面的紋理細(xì)節(jié),提高三維模型的視覺(jué)效果。針對(duì)三維網(wǎng)格模型,提出一種用基于紋理圖冊(cè)的方法將模型進(jìn)行分片,并利用最小二乘保形映射對(duì)分割得到的每一片進(jìn)行平面參數(shù)化,控制了形變。再通過(guò)建立二維坐標(biāo)系與紋理坐標(biāo)系的關(guān)系,確定三維模型各個(gè)頂點(diǎn)的紋理坐標(biāo),從而對(duì)三維模型進(jìn)行紋理映射。實(shí)驗(yàn)證明,該方法能得到較好的紋理映射效果,增強(qiáng)了三維模型的真實(shí)感。
紋理映射 平面參數(shù)化 紋理坐標(biāo) 三維模型分割 紋理重建
在計(jì)算機(jī)應(yīng)用領(lǐng)域,對(duì)現(xiàn)實(shí)世界中三維物體的模擬重建是最主要的研究方向之一。計(jì)算機(jī)輔助設(shè)計(jì)、動(dòng)畫(huà)制作、虛擬現(xiàn)實(shí)等領(lǐng)域都希望在計(jì)算機(jī)上實(shí)現(xiàn)對(duì)真實(shí)物體的逼真再現(xiàn)。除了幾何細(xì)節(jié),真實(shí)的三維物體還有豐富的表面紋理信息,所以三維物體重建并不僅限于幾何重建,還包括紋理重建。只有將幾何信息和紋理信息融合在一起才能完整重建出高度逼真的三維彩色物體模型。紋理映射技術(shù)可以在不增加模型復(fù)雜度的前提下很好地表現(xiàn)模型表面的紋理細(xì)節(jié),提高視覺(jué)效果,是重建真實(shí)感三維物體的重要技術(shù)之一。
紋理映射是將已獲得的包含紋理信息的二維紋理圖像映射到三維物體表面[1]。在映射過(guò)程中,紋理圖像的各個(gè)像素通過(guò)三維網(wǎng)格模型各個(gè)頂點(diǎn)的紋理坐標(biāo)被分配到三維網(wǎng)格的對(duì)應(yīng)頂點(diǎn),從而將整個(gè)紋理圖像映射到三維模型上。所以紋理映射的本質(zhì)是對(duì)三維網(wǎng)格模型的二維參數(shù)化,即求三維網(wǎng)格模型中每個(gè)三維點(diǎn)的紋理坐標(biāo)[11](每個(gè)三維點(diǎn)在二維紋理空間中的坐標(biāo))。
在紋理映射領(lǐng)域,針對(duì)參數(shù)曲面,早期的紋理映射算法有遞歸分割參數(shù)曲面的Catmull算法和反向紋理映射的Blinn算法[4]。對(duì)于非參數(shù)化模型,Bier等提出了兩步紋理映射方法[4]。Song Yong Park等人通過(guò)物體不同姿態(tài)來(lái)獲取輪廓和表面信息,最后通過(guò)多視覺(jué)建模完成了紋理映射[4]。紋理映射需要解決的主要問(wèn)題一是紋理圖像準(zhǔn)確定位到相應(yīng)的幾何模型上;二是紋理重建過(guò)程中紋理的扭曲和變形。如在模型曲率較大的地方,會(huì)出現(xiàn)比較嚴(yán)重的紋理變形。對(duì)于用三角網(wǎng)格表示的三維模型,減少變形的主要方法就是對(duì)三維模型的參數(shù)化過(guò)程進(jìn)行優(yōu)化。三角網(wǎng)格模型參數(shù)化的主要的方法有:平面參數(shù)化、球面參數(shù)化[5]。球面參數(shù)化主要將網(wǎng)格參數(shù)化到它拓?fù)渫瑯?gòu)的球面,研究者提出了基于網(wǎng)格簡(jiǎn)化,基于松弛等球面參數(shù)化方法。但算法的時(shí)間復(fù)雜度較高,在將球面模型映射到二維的紋理空間時(shí),會(huì)引入新的形變。而平面參數(shù)化方法以其簡(jiǎn)單穩(wěn)定的特點(diǎn)成為學(xué)術(shù)研究和工程應(yīng)用最為廣泛的方法[5]。
平面參數(shù)化即把三角網(wǎng)格盡可能均勻的展平到二維區(qū)域中。在平面參數(shù)化中研究者又提出了等積映射、調(diào)和映射、保角映射等方法來(lái)減小變形失真[5]。而大多數(shù)研究者只是研究如何將單個(gè)開(kāi)放面片參數(shù)化到平面中,然后進(jìn)行紋理映射。本文以由三角網(wǎng)格表示的三維非規(guī)則封閉模型作為研究對(duì)象。采用一種用基于紋理圖冊(cè)的方法將模型進(jìn)行分片,并利用最小二乘保形映射作為每片的平面參數(shù)化方法,再建立二維坐標(biāo)系與紋理坐標(biāo)系的關(guān)系,從而確定三維頂點(diǎn)的紋理坐標(biāo)系,得到了較好的紋理映射效果。
1.1 紋理映射
紋理映射就是建立從二維紋理坐標(biāo)空間到三維物體拓?fù)淇臻g的映射[1],它一般遵循如下幾個(gè)步驟:
1) 建立二維紋理到簡(jiǎn)單幾何體的映射;
2) 建立簡(jiǎn)單幾何體到三維物體拓?fù)淇臻g的映射;
3) 通過(guò)簡(jiǎn)單幾何體,建立起從三維物體拓?fù)淇臻g到二維紋理空間的紋理映射。
而平面參數(shù)化方法即選用平面作為中間簡(jiǎn)單幾何體,如圖1所示。
圖1 平面參數(shù)化
因此基于平面參數(shù)化的紋理映射過(guò)程如圖2所示,其中,(1) 平面參數(shù)化;(2) 平面空間到紋理空間;(3) 紋理空間到三維幾何空間。
圖2 基于平面參數(shù)化的紋理映射過(guò)程
1.2 保形映射
如果曲面S上的任意兩條曲線的夾角與相應(yīng)參數(shù)域中的對(duì)應(yīng)夾角相等,即說(shuō)明從曲面S到對(duì)應(yīng)平面的映射是保形映射[7]。如圖3所示,二維空間中的點(diǎn)(u,v)經(jīng)過(guò)X關(guān)系映射到三維曲面上一點(diǎn)X(u,v),如果對(duì)于二維空間中所有的點(diǎn)(u,v),X映射都滿足式(1),則X映射即為保形映射。向量N表示三維曲面的單位法向量。
圖3 保形映射示意圖
(1)
定理 從曲面S到平面S*的映射X是保形映射當(dāng)且僅當(dāng)這個(gè)映射X的第一基本形式JX的系數(shù)的變化比例相同,即σ1=σ2。即二維平面上的單位圓經(jīng)過(guò)保形映射到三維曲面上仍然是一個(gè)圓,如圖4所示,圖中,二維空間中的點(diǎn)u映射到三維空間上的點(diǎn)p,同時(shí)二維空間中的以點(diǎn)u為圓心,r為半徑的圓映射到p的切平面上成為一個(gè)以p為中心的橢圓,長(zhǎng)短軸分別為σ1和σ2。
(2)
圖4 二維平面經(jīng)過(guò)保形映射到三維曲面
本文采用了一種用基于紋理圖冊(cè)的方法將模型進(jìn)行分片,并利用最小二乘保形映射作為每片的平面參數(shù)化的紋理映射方法,算法流程如圖5所示。
圖5 本文紋理映射算法流程
本文采用的紋理映射方法是先將閉合曲面分割成一組同構(gòu)于圓盤的可展曲面,然后再對(duì)分割后的每個(gè)曲面進(jìn)行平面參數(shù)化。為了不使紋理映射后的模型由于此步而出現(xiàn)明顯接縫,本文選擇在形狀和光照變化比較大的高曲率處進(jìn)行分割,然后利用LSCM方法[7]參數(shù)化分割生成的一組可展曲面,并根據(jù)特征點(diǎn)的信息。通過(guò)最小化投影誤差,得到相應(yīng)的信息,從而求得從三維模型到二維紋理的映射關(guān)系,用得到的映射關(guān)系將三維模型重新映射到二維紋理上得到三維模型每一點(diǎn)在此二維紋理上的位置,最終得到帶有紋理的三維幾何模型。
2.1 三維模型分割
由于基于保形映射的平面參數(shù)化只適用于等價(jià)于圓盤的可展曲面,所以必須先將閉合曲面分割成一組等價(jià)于圓盤的可展曲面。然后才可以對(duì)分割后的每個(gè)曲面進(jìn)行平面參數(shù)化。為了不使紋理映射后的模型由于曲面分割而出現(xiàn)明顯接縫,選擇在形狀和光照變化比較大的高曲率處進(jìn)行分割,可以減小接縫對(duì)于最終紋理映射真實(shí)感的影響。因此本文選用的三維模型分割方法是一種基于曲率的特征曲線網(wǎng)格分割算法——DFEC(detect feature expand charts)算法[8]。具體算法如下:
1) 通過(guò)基于邊關(guān)聯(lián)面的法向量夾角(SOD)檢測(cè)特征曲線,為避免獲得過(guò)多特征曲線,設(shè)定最小特征長(zhǎng)度閾值,只保留部分滿足條件的特征曲線;
2) 以特征曲線為邊界,從邊界向內(nèi)傳播,計(jì)算其他三角面到特征曲線的距離;
3) 以距離函數(shù)的極值點(diǎn)作為種子點(diǎn),使用多源Dijkstra算法,同時(shí)從多個(gè)種子點(diǎn)進(jìn)行區(qū)域擴(kuò)展;
4) 如果兩個(gè)區(qū)域在距離種子點(diǎn)距離足夠小的地方相遇,則合并這兩個(gè)區(qū)域。
由于此算法沒(méi)有迭代過(guò)程,因此具有較高效率,而且分割結(jié)果完全可以滿足平面參數(shù)化算法的需要。
2.2 利用LSCM(Least Squares Conformal Maps)方法參數(shù)化
在得到一組可展并等價(jià)于圓盤的曲面后,需要對(duì)這些曲面進(jìn)行參數(shù)化處理,將曲面參數(shù)化到同一個(gè)平面,形成一個(gè)用于紋理映射的空白的紋理Atlas圖。本文采用最小二乘保形映射(LSCM)方法[7]對(duì)曲面進(jìn)行平面參數(shù)化處理。該算法的原理是對(duì)于每一個(gè)三角面片通過(guò)最小二乘逼近Cauchy-Riemann等式,使其滿足保形映射要求。算法具體過(guò)程如下:
1) T表示拓?fù)涞葍r(jià)于圓盤的三角網(wǎng)格模型:
(3)
2) 為每個(gè)三角形構(gòu)建一個(gè)位于三角形所在平面的局部正交基(x, y),法向量同向于z軸。
3) 對(duì)于每一個(gè)三角面片T,都可以用上步定義的局部正交基表示,因此,映射u(R3->R2的映射)可以表示為(x,y)->(u,v)。根據(jù)Cauchy-Riemann方程,u為保形映射當(dāng)且僅當(dāng)滿足下式:
(4)
由于不可能使每一個(gè)三角面片嚴(yán)格滿足等式(4),因此需要構(gòu)造整體最小二乘約束的保形映射,即使式(5)的值達(dá)到最?。?/p>
(5)
4) 假設(shè)映射u在每個(gè)三角面片上都是線性映射,式(5)可以改寫為:
(6)
其中,A(T)為三角面片T的面積。
5) 假設(shè)ui=ui+ivi(i=1,2,…,n),可以將C(k)化簡(jiǎn)為二次型形式:
C(k)=uTMTMu
(7)
其中u=(u1,u2,…,un),M為m×n矩陣。
6) 為了使等式有唯一解,需要固定p個(gè)頂點(diǎn)(p>=2),將向量分成uf、up,M=(Mf,Mp),式(7)可改寫為:
C(k)=‖Mfuf+Mpup‖2
(8)
其中Mf是m×(n-p)階矩陣,Mp是m×p階矩陣。
7) 通過(guò)共軛梯度法求解上式的平方和最小化問(wèn)題,并將平面參數(shù)化后的各個(gè)平面歸一化到同一平面,生成一個(gè)空白待映射的紋理Atlas圖,并得到每個(gè)三維頂點(diǎn)在此圖中的坐標(biāo)(u,v)。
三維模型及其平面參數(shù)化處理后的結(jié)果如圖6所示。
圖6 三維模型及平面參數(shù)化處理后結(jié)果圖
2.3 計(jì)算從三維模型到二維紋理的變換關(guān)系
計(jì)算從三維模型到二維紋理的變換關(guān)系即通過(guò)約束點(diǎn)計(jì)算恢復(fù)相機(jī)的參數(shù),得到變換關(guān)系。然后用得到的變換關(guān)系將整個(gè)模型重新映射到二維圖像上,得到每一點(diǎn)在圖像上的位置。即通過(guò)式(9)[9]計(jì)算三維模型上的點(diǎn)在二維紋理上的位置。
q=TG(p)=KR[I|-C]p
(9)
其中K為相機(jī)的標(biāo)定矩陣(相機(jī)的內(nèi)部參數(shù)信息),R為一個(gè)旋轉(zhuǎn)矩陣,C為一個(gè)平移矢量,通過(guò)最小化誤差函數(shù)式(10)來(lái)得到變換關(guān)系T。
(10)
由于本文對(duì)三維模型進(jìn)行紋理映射的二維紋理圖像和三維模型的狀態(tài)不能高度一致。如果對(duì)所有頂點(diǎn)都采用同一個(gè)全局變換關(guān)系進(jìn)行變換,會(huì)導(dǎo)致模型和圖像不能準(zhǔn)確對(duì)應(yīng),結(jié)果產(chǎn)生很大變形。因此為了使二維圖像能夠準(zhǔn)確映射到三維模型相應(yīng)位置上,本文采用的算法是根據(jù)每個(gè)頂點(diǎn)到約束點(diǎn)的歐式距離,得到每個(gè)點(diǎn)的權(quán)重,為每個(gè)頂點(diǎn)計(jì)算一個(gè)變換關(guān)系。而隨之出現(xiàn)的相鄰頂點(diǎn)的變換關(guān)系相差很大而導(dǎo)致紋理變形問(wèn)題可以通過(guò)按一定順序處理各個(gè)頂點(diǎn)的方法來(lái)解決。計(jì)算三維模型每個(gè)點(diǎn)變換關(guān)系的具體算法過(guò)程如下:
1) 計(jì)算頂點(diǎn)v到約束點(diǎn)pi的距離D(v,pi),并且計(jì)算頂點(diǎn)v對(duì)于約束點(diǎn)pi的權(quán)重:
(11)
其中,α=10-3,β=2。
2) 在頂點(diǎn)v處的變換關(guān)系為:
T(v)(p)=K(v)R(v)[I|-C(v)]p
(12)
(1) 式(12)可以用相機(jī)模型改寫為:
T(v)(p)=M(v)p+c(v)
(13)
假定相機(jī)在x、y軸上有相同的縮放比例,則:
(14)
(15)
(3) 式(15)可以改寫為:
(16)
使誤差和式(16)達(dá)到最小,即可求得該點(diǎn)處的變換關(guān)系。
為防止可能出現(xiàn)的由于相鄰頂點(diǎn)的變換關(guān)系很不同而導(dǎo)致紋理變形。本文通過(guò)這樣的處理順序來(lái)依次處理每個(gè)頂點(diǎn):選取到所有約束點(diǎn)距離之和最小的頂點(diǎn)為中心點(diǎn),其余點(diǎn)按照廣度優(yōu)先排序,每個(gè)點(diǎn)v的M(v)的初始估計(jì)值為定義為該點(diǎn)在廣度優(yōu)先搜索樹(shù)中父節(jié)點(diǎn)u的M值(中心點(diǎn)v0的M值的初始估計(jì)值通過(guò)奇異值分解的方式求得)。
2.4 顏色映射
通過(guò)以上算法,可以得到從三維模型到二維參數(shù)域和從三維模型到二維圖像的變換關(guān)系。最后需要把二維紋理圖像上的顏色信息添加到參數(shù)域中的相應(yīng)點(diǎn)上,如圖7所示。
圖7 顏色映射示意圖
本文使用Kinect掃描獲取真實(shí)的三維模型數(shù)據(jù),使用相機(jī)獲取二維紋理信息,在Windows環(huán)境下,結(jié)合VC++、VTK和OpenNL實(shí)現(xiàn)了上述算法。將與三維模型不高度對(duì)應(yīng)的二維紋理信息準(zhǔn)確映射到三維模型的相應(yīng)位置,提高了三維模型的真實(shí)感。圖8、圖9三維模型紋理映射上的效果圖。
圖8 紋理映射效果1
圖9 紋理映射效果2
由圖可以看到,二維紋理信息和三維模型的初始位置不同,本文映射方法可以較好地將二維紋理信息映射到三維模型上,增強(qiáng)了三維模型的真實(shí)感,為三維模型的進(jìn)一步應(yīng)用提供了很好的基礎(chǔ)。
本文針對(duì)三角網(wǎng)格模型提出一種基于保形映射的平面參數(shù)化和逐點(diǎn)計(jì)算變換關(guān)系的紋理映射方法,并通過(guò)實(shí)驗(yàn)驗(yàn)證了本文方法的有效性。該方法不要求二維紋理和三維模型初始位置高度對(duì)應(yīng),能夠得到很好地映射效果,而且大大減少了傳統(tǒng)方法中的紋理變形問(wèn)題,增強(qiáng)了三維模型的真實(shí)感。該方法仍存在很多不足,如在計(jì)算三維到二維變換關(guān)系是需要人為指定約束點(diǎn),雖然提高了約束點(diǎn)的準(zhǔn)確性,但是自動(dòng)化程度不高,能夠自動(dòng)準(zhǔn)確標(biāo)定約束點(diǎn),使得該算法有待進(jìn)一步的改進(jìn),是未來(lái)研究的方向。
[1] 余烽.真實(shí)感三維人臉建模研究[D].西安:西安電子科技大學(xué),2007.
[2] 江巨浪.紋理映射技術(shù)的研究及實(shí)現(xiàn)[D].合肥:合肥工業(yè)大學(xué),2003.
[3] 李增忠.紋理映射技術(shù)的研究[D].西安:西安電子科技大學(xué),2005.
[4] 張潔.基于紋理映射真實(shí)感圖形的研究[D].西安:西安電子科技大學(xué),2007.
[5] 姚建強(qiáng).網(wǎng)格的參數(shù)化及在紋理中的應(yīng)用[D].上海:上海交通大學(xué),2009.
[6] 楊瑋瑋.三角網(wǎng)格參數(shù)化的算法研究與應(yīng)用[D].天津:天津大學(xué),2005.
[7] Lévy B,Petitjean S,Ray N,et al.Least Squares Conformal Maps for Automatic Texture Atlas Generation,2002[J].ACM Transactions on Graphics,2002,21(3):362-371.
[8] 董洪偉.三角網(wǎng)格分割綜述[J].中國(guó)圖象圖形學(xué)報(bào),2010,15(2):181-193.
[9] Hartley R I,Zisserman A.Multiple View Geometry in Computer Vision[M].Cambridge University Press,2004.
[10] 熊秋波.不規(guī)則區(qū)域紋理提取與3D模型貼圖[D].湖南:中南林業(yè)科技大學(xué),2010.
[11] 高景璐.真實(shí)感三維人臉模型的紋理映射[D].吉林:吉林大學(xué),2007.
[12] 陳梅,鄭飛.不規(guī)則三維網(wǎng)格紋理映射的均勻化[J].計(jì)算機(jī)工程與應(yīng)用,2006(3):90-92.
[13] 申世恒.交互式局部約束織物紋理映射技術(shù)的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2011.
[14] Kersten T P,Stallmann D.Automatic Texture Mapping of Architectural and Archaeological 3D Models[J].ISPRS-International Archives of the Photogrammetry,Remote Sensing and Spatial Information Sciences,2012,XXXIX-B5:273-278.
[15] Floater M S,Kai H.Surface Parameterization:a Tutorial and Survey[M].Advances in Multiresolution for Geometric Modelling,2005.
[16] Duan C,Tu C,Meng X.Optimization of Multi-View Texture Mapping for Reconstructed 3D Model[C]//Proceedings of the 8th World Congress on Intelligent Control and Automation,2010:30-34.
[17] Cang G,Li M,Ou J,et al.Application of weighted total least squares based on intensity value in plane fitting of point clouds,2013[C]//International Conference on Remote Sensing,Environment and Transportation Engineering,2013:197.
[18] Liu Q,Xi J,Wu Z.An energy-based surface flattening method for flat pattern development of sheet metal components[J].Int J Adv Manuf Technol,2013,68(5-8):1155-1166.
[19] Bondarev E,Heredia F,Favier R,et al.On Photo-Realistic 3D Reconstruction of Large-Scale and Arbitrary-Shaped Environments[M].IEEE,2013.
[20] Weng Y,Li D,Tong Y.Texture mapping subdivision surfaces with hard constraints[J].Vis Comput,2013,29(11):1231-1241.
[21] Marroquim R,Pfeiffer G,Canraeho F,et al.Texturing 3D models with low geometric features[C]//24th SIBGRAPI Conference on Graphics,Patterns and Images,2011:1-8.
[22] Hormann K,Polthier K,Sheffer A.Mesh parameterization:Theory and practice[C]//ACM SIGGRAPH ASIA 2008 Courses,ACM,2008:1-87.
ON TEXTURE MAPPING BASED ON TRIANGULAR MESH MODEL
Wan Yan Wang Huijie Lu Jun
(DepartmentofComputerScienceandTechnology,DonghuaUniversity,Shanghai201620,China)
Texture mapping is a good method to display the surface detail of a three-dimensional model without increasing the complexity of the model, and can improve the visual effect of model as well. For triangular mesh model, we presented a texture atlas-based method to slice the model, and used the least squares conformal mapping to conduct plane parameterisation on each segmented piece of surface, this controlled the deformation at the same time. Then we determined the texture coordinate of each vertex of three-dimensional model through the establishment of the relationship between two-dimensional coordinate system and texture coordinate system, thus completed the texture mapping of model. Experiments proved that this method achieved quite good texture mapping effect, and enhanced the realistic nature of three-dimensional model.
Texture mapping Plane parameterisation Texture coordinate 3D model segmentation Texture reconstruction
2014-09-13。國(guó)家自然科學(xué)基金項(xiàng)目(81372057)。萬(wàn)燕,副教授,主研領(lǐng)域:圖像處理與模式識(shí)別。王慧潔,碩士生。魯俊,碩士生。
TP3
A
10.3969/j.issn.1000-386x.2016.04.038