姚建強, 何援軍
(上海交通大學計算機系,上海 200240)
3D幾何模型的發(fā)展,使網(wǎng)絡(luò)曲面的參數(shù)化成為近年來圖形學的研究熱點之一。由于三角網(wǎng)絡(luò)曲面具有簡單,靈活以及受各種圖形硬件的廣泛支持的特點[1],三角網(wǎng)格曲面的參數(shù)化在娛樂業(yè)、制造業(yè)、醫(yī)學和科學可視化等領(lǐng)域中得到廣泛的應(yīng)用。
三角網(wǎng)格曲面參數(shù)化主要是將由三角網(wǎng)格M表示的曲面S與二維流形參數(shù)域之間尋求一個一一對應(yīng)映射? 使得? (M)與M同構(gòu),并使曲面映射后扭曲失真最小。過去的一段時間里,許多學者一直在研究如何計算扭曲失真的程度。并提出了等積映射、調(diào)和映射、保角映射、虛擬邊界等方法來減小失真[2]。
三角網(wǎng)格曲面的參數(shù)化主要分為曲面網(wǎng)格參數(shù)化和網(wǎng)格內(nèi)部點映射。
根據(jù)參數(shù)域的不同,三角網(wǎng)格參數(shù)化方法主要可以分為平面參數(shù)化和球面參數(shù)化。
平面參數(shù)化是目前研究得最多的參數(shù)化算法,它把一個空間三角網(wǎng)格盡可能均勻地攤平到某個平面區(qū)域中。Tutte[2]在1960提出了凸組合方法, Floater[3-4]在Tutte的基礎(chǔ)上通過給每條邊附加一個與邊長相關(guān)的權(quán)值改進了凸組合方法。它們的基本思想是固定邊界點,內(nèi)部點由它的相鄰點的加權(quán)凸組合給出。并提出了保角參數(shù)化和均值參數(shù)化方法。
通常幾何模型都是由虧格為零的封閉網(wǎng)格組成,如變形的球體。對于這樣的模型,將它參數(shù)化到它拓撲同構(gòu)的球面更為合理[5]。近些年,人們逐漸把球面參數(shù)化作為研究的重點。
一個最簡單的方法就是先使用一個三角形作為邊界將三角網(wǎng)絡(luò)參數(shù)化到平面上,然后將平面域映射到球面上。這種方法在實踐中使用得很好,但在理論上沒有什么保證,并且結(jié)果會依賴于三角形邊界的選取[6]。Shapiro等[7]提出了一個基于網(wǎng)格簡化的球面參數(shù)化方法,該方法先將原始網(wǎng)格簡化為四面體,再把這個四面體映射到球面,并通過逆操作把被刪除的頂點添加到球面上。Alexa[8]給出了一種很簡單的球面參數(shù)化算法。首先把網(wǎng)格的所有頂點投影到模型的最小包圍球面上;然后保持球面上6個頂點的位置不動,用離散Laplacian 平均算子來松弛球面的其他頂點,直到球面網(wǎng)格變成星型,達到球面參數(shù)化的目的。但是,這種先簡單投影后松弛的方法,對形狀比較復雜的模型需要多次循環(huán)。因此,時間代價很高。
為了得到曲面S的映射?,必須定義對三角網(wǎng)格內(nèi)部點的映射。Arvo[9]提出了一種從平面方形到球面的保積映射,Turk[10]提出了從方形到三角形的保積映射。將兩者結(jié)合起來可以得到一個從三角形到球面的保積映射 Arvo·Turk-1。Buss-Fillmore[11]重新定義了對球面點A1,A2,Ak的重心組合方式。該算法需要多次迭代,但收斂速度較快。Emil[5]等總結(jié)了網(wǎng)格內(nèi)部點映射的方法。
在本文中將凸組合方法應(yīng)用到球面參數(shù)化中,結(jié)合 slerp算法參數(shù)化三角網(wǎng)格曲面。由于需要帶邊界的三角網(wǎng)格,因此先提出了一種快速分割封閉網(wǎng)格的辦法。將得到的帶邊界的三角網(wǎng)格分別參數(shù)化,再利用 2-slerp算法映射三角網(wǎng)格內(nèi)部點。
凸組合參數(shù)化適用于帶邊界的三角網(wǎng)絡(luò)。對于封閉的網(wǎng)絡(luò)首先需要做切割處理。然后將網(wǎng)絡(luò)邊界映射到參數(shù)區(qū)域的凸邊界上。
尋找切割線,將三角網(wǎng)絡(luò)切割成帶邊界的三角形網(wǎng)格,然后把網(wǎng)格的邊界按邊長比例逆時針映射到球面的凸區(qū)域邊界上.凸組合參數(shù)化方法必須把網(wǎng)格的邊界映射到球面的凸區(qū)域邊界,否則結(jié)果可能無效。網(wǎng)絡(luò)邊界被映射到參數(shù)區(qū)域的凸邊界上后,三角網(wǎng)格內(nèi)部點在球面的對應(yīng)點將由球面區(qū)域邊界唯一表示。
切割線的選取對參數(shù)化的結(jié)果影響很大。為了減小參數(shù)化引起的扭曲和將網(wǎng)格均勻的參數(shù)化,可以通過尋找最長的頂點間最短路徑。
從圖論的角度看,三角網(wǎng)格可以視為帶有權(quán)重的無向圖,它的權(quán)重由邊長來決定。因此,網(wǎng)格上任意兩點間的最短路徑可由Dijkstra算法或Floyd算法來獲得
設(shè)得到的最短路徑為ABCDEF。其中,AB為路徑端點,BCDE為最短路徑的中間點,如圖1所示
圖1 最短路徑
獲得初始切割線之后,需要將切割線展開成一個封閉的環(huán),以將這個環(huán)作為參數(shù)域的邊。對于最短路徑中的每條邊可以分拆一次得到環(huán)。如可將圖1中的最短路徑展開為
凸組合方法是指點的位置由其周圍頂點位置決定。 設(shè)在三角網(wǎng)格中頂點vi相鄰的頂點集為Ni={ ni1… nik},映射?將vk映射到參數(shù)域中為 ? ( v k )( v k∈N i )則
Floater[3-4]證明了該方法的保凸性。
選擇映射?,將bi到Sb。Sb為球面區(qū)域S邊界,bi屬于VB。三角網(wǎng)絡(luò)的邊界被映射到球面區(qū)域的邊界上。
其次,對于所有的 vi ∈ V I,找到合適的正值 λij使得
由于方程左邊全是網(wǎng)絡(luò)中的內(nèi)部頂點,右邊點是網(wǎng)格中的外部頂點。所以方程可以寫為
對于ijλ的選取,floater提出利用保角映射,可以減小參數(shù)化帶來的形變。
夾角(δij,γij)與邊權(quán)(lij)的如圖2所示。
圖2 夾角與邊權(quán)
滿足條件(1)的方程組中的矩陣A是非奇異的并且是稀疏的,構(gòu)造了正值集合ijλ,通過解方程(1),可以得到了網(wǎng)格內(nèi)部頂點的邊界表示??梢姡瑑?nèi)部點的初始映射位置并不重要,因為它由邊界點惟一確定。
Floater[3-4]證明了凸組合方法解的存在性和惟一性。利用凸組合參數(shù)化,可以將由邊界分割得到的網(wǎng)絡(luò)參數(shù)化到對應(yīng)的球面區(qū)域邊界上。封閉的三角網(wǎng)絡(luò)便被全部映射到了球面上。
三角網(wǎng)格被參數(shù)化到球面后,為了得到三角網(wǎng)格曲面的參數(shù)化,需要映射網(wǎng)格的內(nèi)部點。設(shè)三角形的頂點為 { A,B,C},映射到球面上的對應(yīng)點為A′=?(A),B′=?(B ),C′=?(C)。對三角形中的點P=αA+βB+γC,其中α+β+γ=1,必須定義它在球面上的映射點P′=?(P)。
在本文中,采用2-slerp算法[5]。在球面插值中,P ′ =s lerp(A′,B′,α)指尋找參數(shù)點P′使得
可以看出,slerp算法只能在一維空間中線性插值。為了將 slerp算法應(yīng)用到三角形中,可以兩次迭代slerp得到2-slerp。
三角形內(nèi)部點被映射后,三角網(wǎng)格曲面被完全映射到了球面上。
本文將凸組合方法應(yīng)用到球面參數(shù)化中,結(jié)合 slerp算法,提出了一種參數(shù)化三角網(wǎng)格球面的方法。在AMD雙核2.21G,內(nèi)存1G的PC機上,VC6.0的編譯環(huán)境下實現(xiàn)了該方法。圖3給出了一些動物模型參數(shù)化的結(jié)果??梢钥闯觯谶@4個模型中,三角網(wǎng)格曲面被較均勻的參數(shù)化。該算法在這些模型上應(yīng)用得很好??梢灾苯訉⑵鋺?yīng)用到紋理映射、重新網(wǎng)格化、曲面擬合、morphing等技術(shù)中。
但在本文中,作者沒有進行失真度量,以及根據(jù)失真分析的結(jié)果來優(yōu)化算法。在以后的工作中,作者將失真分析考慮到模型的建立中,以得到更好的結(jié)果。
圖3 凸組合參數(shù)化
[1]何援軍. 計算機圖形學[M]. 北京: 機械工業(yè)出版社,2006. 228-234.
[2]Alla Sheffer,Emil Praun, Kenneth Rose. Mesh parameter-ization methods and their applications [C]//Foundations and Trends? in Computer Graphics and Vision, 2006: 105-171.
[3]Floater M S. Parametrization and smoth approximation of surface triangulations [J]. Computer Aided Geometric Design, 1997, 14(3): 231-250.
[4]Floater M S. Mean value cordinates [J]. Computer Aided Geometric Design, 2003, 20(1): 19-27.
[5]Praun E, Hoppe H. Spherical parametrization and remeshing [C]//Computer Graphics Proceedings,Annual Conference Series, ACM SIGGRAPH, San Diego, 2003: 340-349.
[6]Craig Gotsman, Xianfeng Gu, Alla Sheff.Fundamentals of spherical parameterization for 3D meshes [J]. ACM Transactions on Graphics(TOG), 2003, 22(3): 358-363.
[7]Shapiro A, Ayellet T. Polyhed ron realization for shape transformation [J].The Visual Computer, 1998,14(8/9): 429-444.
[8]Alexa M. Merging po lyhed ron shapes with scattered features [J]. The Visual Computer, 2000, 16(1): 26-37.
[9]James Arvo. Stratified sampling of spherical triangles [C]//ACM SIGGRAPH, 1995: 437-438.
[10]TURK G. Generating random points in triangles,Graphics gems [M]. Academic Press, 1990. 649-650.
[11]BUSS S, AND FILLMORE J. Spherical averages and applications to spherical splines and interpolation [J].ACM Transactions on Graphics, 2001, 20(2): 95-126.