王釗,邵春芳,孔閃閃,宿婧,張潔琳
(1. 華北理工大學(xué) 理學(xué)院,河北 唐山 063210;2. 大連科技學(xué)院 基礎(chǔ)部,遼寧 大連 116052;3. 吉林大學(xué) 數(shù)學(xué)學(xué)院,吉林 長春 130012)
近年來, 曲面參數(shù)化是計算機圖形學(xué)領(lǐng)域備受關(guān)注的研究熱點。它在計算機輔助設(shè)計和數(shù)字幾何處理等相關(guān)方向有著廣泛的應(yīng)用。該項研究提出了可拉伸的ARAP++曲面參數(shù)化算法, 這是一種新的局部/全局參數(shù)化方法。主要受到平面參數(shù)化方法[1-3]和球面參數(shù)化方法[4-6]的啟發(fā), 首先通過ARAP++方法優(yōu)化原始網(wǎng)格的Spring能量[7], 然后通過調(diào)整Jacobian矩陣奇異值的指數(shù), 來控制曲面參數(shù)化效果的拉伸形變, 從而得到一系列有效的參數(shù)化結(jié)果。數(shù)值實驗結(jié)果表明, 該算法與經(jīng)典參數(shù)化算法相比, 在角度、面積、拉伸扭曲和運行時間方面都具有一定的優(yōu)勢, 并且得到了較好的紋理映射效果, 如圖1所示, 其中θ表示拉伸因子。

圖1 Gargoyle模型紋理映射效果
該研究創(chuàng)新點如下, 基于ARAP++方法提出了一種可拉伸的曲面參數(shù)化方法, 該方法可針對含邊界的三角網(wǎng)格模型得到固定邊界和自由邊界的可拉伸的曲面參數(shù)化結(jié)果,也可針對零虧格的三角網(wǎng)格得到可拉伸的球面參數(shù)化結(jié)果。該方法建立了局部全局參數(shù)化算法的從平面區(qū)域到球面區(qū)域的橋梁, 也實現(xiàn)了從共形參數(shù)化到等距參數(shù)化的漸變過渡, 能夠更好地處理高曲率模型的參數(shù)化。
主要介紹與該算法緊密相關(guān)的方法和扭曲度量,以便于更好地闡述該算法和實驗。
設(shè)S是原始網(wǎng)格,pi是S的網(wǎng)格點,pj是pi的一環(huán)點。S*是參數(shù)化網(wǎng)格,qi是S*的網(wǎng)格點,qj是qi的一環(huán)點。根據(jù)局部Spring能量[7]表達式:

(1)
通過優(yōu)化整個網(wǎng)格的Spring能量, 可以得到平面ARAP++方法[2]

(2)
其中ω可以選擇5種經(jīng)典權(quán)值, Uniform權(quán)值, Cotan權(quán)值[8], Shape-preserving權(quán)值[9], Intrinsic權(quán)值[10], Mean-value權(quán)值[11], 該權(quán)值ω為Mean-value權(quán)值,L表示擬合矩陣[5]。
設(shè)S是原始網(wǎng)格,pi是S的網(wǎng)格點,pj是pi的一環(huán)點。S*是參數(shù)化網(wǎng)格,qi是S*的網(wǎng)格點,qj是qi的一環(huán)點。通過優(yōu)化整個網(wǎng)格的Spring能量, 可以得到球面ARAP++方法[2]

(3)
其中α是輔助變量,qi=(xi,yi,zi),Bi=(ai,bi,ci),上面的(3)式可以化簡為

(4)
可以采用牛頓法求解(4)式, 得到球面參數(shù)化結(jié)果。
擬合矩陣L是由原始網(wǎng)格S中的Δp1p2p3和參數(shù)化網(wǎng)格S*中對應(yīng)的Δq1q2q3來計算,設(shè)
(5)
經(jīng)過文獻[5]中的推導(dǎo), 可以得到

(6)

(7)
其中旋轉(zhuǎn)矩陣R和2個擬合矩陣L(等距矩陣,共形矩陣)分別為:

(8)
設(shè)S和S*分別表示原始網(wǎng)格和參數(shù)化網(wǎng)格,θ和φ分別表示S和S*中三角面片的角度,F表示面片的數(shù)量,A(T)表示三角形T的面積。則在參數(shù)化比較中, 角度和面積扭曲分別為:

(9)
拉伸扭曲[14]通過三角形的Jacobian矩陣計算,Γ和γ分別是該矩陣的最大和最小奇異值。

(10)
該項研究提出了可拉伸的ARAP++的曲面參數(shù)化算法, 它是一種漸變的的局部/全局參數(shù)化方法, 可以得到3類可拉伸的參數(shù)化結(jié)果, 分別是平面固定邊界, 平面自由邊界和球面上的參數(shù)化結(jié)果。作為該算法的基礎(chǔ), 讀者可以參考相關(guān)文獻[1-6]。
該算法為平面ARAP++方法和球面ARAP++方法的改進, 整體框架與ARAP++方法保持一致, 其核心部分為通過調(diào)整擬合矩陣奇異值的拉伸指數(shù), 來得到可拉伸的參數(shù)化結(jié)果。
首先利用(6)式和(7)式, 可以得到共形矩陣和等距矩陣, 分別表示為:

(11)
然后對擬合矩陣做變形,θ稱為拉伸指數(shù), 它的取值范圍一般為[-2, 2]。當(dāng)θ等于0時,Lstretch與Lisometric相等, 當(dāng)θ等于1時,Lstretch與Lconformal相等。可得拉伸矩陣為:

(12)
最后將拉伸矩陣Lstretch代入到(2)式中, 計算求解。該研究中對于每個θ值, 在全局求解時, 只需要計算一次, 不需要迭代。
在球面參數(shù)化的計算中, 首先將Lstretch推廣至三維空間, 然后將Lstretch代入到(3)式和(4)式進行化簡, 最后利用牛頓迭代法進行求解。

(13)
該算法既可以應(yīng)用于平面參數(shù)化的計算, 也可以應(yīng)用于球面參數(shù)化的計算, 對于平面參數(shù)化的計算分成2種情況, 如圖2所示, 固定邊界的平面參數(shù)化。如圖3所示, 自由邊界的平面參數(shù)化。在平面ARAP++方法的求解過程中, 可以只固定1個頂點在平面上, 經(jīng)過全局求解后, 便得到自由邊界的參數(shù)化結(jié)果, 也可以將所有的邊界點固定到圓形或者正方形上, 然后全局求解, 便得到固定邊界的參數(shù)化結(jié)果。

圖2 Bumpy模型: 不同拉伸指數(shù)對應(yīng)的固定邊界的平面參數(shù)化

圖3 Head模型: 不同拉伸指數(shù)對應(yīng)的自由邊界的平面參數(shù)化
在球面參數(shù)化中,展示不同的拉伸因子所對應(yīng)的球面參數(shù)化結(jié)果,如圖4所示。 由于球面結(jié)構(gòu)與平面結(jié)構(gòu)是不同的, 球面參數(shù)化結(jié)果應(yīng)為拉伸區(qū)域和收縮區(qū)域相結(jié)合, 才能構(gòu)成一個零虧格的球面, 而不能靠單純的拉伸或者收縮而得到。為了更加清晰地顯示每個拉伸因子所對應(yīng)的球面參數(shù)化的整體細(xì)節(jié), 首先將球面參數(shù)化結(jié)果投影到正方體上, 然后將正方體沿棱上的頂點路徑進行切割, 形成單邊界的網(wǎng)格模型, 最后將單邊界的正方體網(wǎng)格等距的展平到平面上。

圖4 Gargoyle模型: 不同拉伸指數(shù)對應(yīng)的球面參數(shù)化
該實驗均在i7 3.8GHz CPU, 32GB內(nèi)存的PC機上運行, 采用MATLAB編程實現(xiàn)。比較了各種參數(shù)化算法的扭曲度量和運行時間, 然后將參數(shù)化所對應(yīng)的紋理映射加以比較。
在實驗1中, 將可拉伸的ARAP++曲面參數(shù)化算法與其它經(jīng)典平面參數(shù)化方法進行比較, 這些方法包括Intrinsic[10], Stretch[15]和Progressive方法[3]。選擇這3種經(jīng)典方法作為比較對象主要是因為Intrinsic方法是凸組合方法,它是許多參數(shù)化方法改進的基礎(chǔ)。Stretch方法是可拉伸的參數(shù)化方法,用來驗證該項研究的拉伸度量。Progressive方法是近3年提出的新方法,一種漸進的參數(shù)化方法。該研究方法中的拉伸因子分別為θ=-0.2和θ=1。圖5為固定邊界的平面參數(shù)化和紋理映射的比較。

圖5 固定邊界的平面參數(shù)化和紋理映射的比較
如圖5所示,主要比較了固定邊界的參數(shù)化結(jié)果和其對應(yīng)的紋理映射。 實驗中使用了2個模型 Flower和Egea, 在表1中, 比較了各種固定邊界參數(shù)化方法的扭曲度量(角度、面積、拉伸)以及運行時間。通過分析試驗數(shù)據(jù)可以發(fā)現(xiàn), 該方法θ=1產(chǎn)生的角度扭曲為最小,該方法θ=-0.2產(chǎn)生的面積扭曲為最小,該方法θ=-0.2產(chǎn)生的拉伸扭曲為最小。在運行時間的比較中, 該方法略慢于Intrinsic和Stretch等2種方法, 但是好于Progressive方法。在紋理映射的比較中, 該方法θ=1由于產(chǎn)生的角度扭曲為最小, 所以得到的紋理映射保角效果為最好。該方法θ=-0.2較好地平衡了角度扭曲,面積扭曲和拉伸扭曲, 所以得到的紋理映射非常均勻美觀。綜上所述, 該方法與其它固定邊界參數(shù)化方法相比較, 在扭曲度量和紋理映射等方面均有一定的優(yōu)勢。

表1 固定邊界的平面參數(shù)化的扭曲度量和運行時間的比較
在實驗2中, 將提出的可拉伸的ARAP++曲面參數(shù)化算法與其它經(jīng)典平面參數(shù)化方法進行比較, 包括ARAP[1], BD-ARAP[12]和Progressive方法[3]。選擇這3種經(jīng)典方法作為比較對象主要是因為ARAP方法是原創(chuàng)方法,它是該參數(shù)化方法改進的基礎(chǔ)。BD-ARAP方法是可調(diào)整參數(shù)的方法,從而達到保角和保面積的目的。Progressive方法與該研究方法類似,而且是近3年提出的新方法。該方法中的拉伸因子分別為θ=-0.2和θ=1。
如圖6所示,主要比較了自由邊界的參數(shù)化結(jié)果和其對應(yīng)的紋理映射。實驗中使用了2個模型 Julius和Nose, 在表2中, 比較了各種自由邊界參數(shù)化方法的扭曲度量(角度、面積、拉伸)以及運行時間。通過分析試驗數(shù)據(jù)可發(fā)現(xiàn), 所得到的數(shù)據(jù)與固定邊界的比較中保持一致。該方法θ=1產(chǎn)生的角度扭曲是最小的,θ=-0.2產(chǎn)生的面積扭曲和拉伸扭曲為最小。在運行時間的比較中, 該方法略慢于ARAP方法, 但是好于BD-ARAP和Progressive2種方法。在紋理映射的比較中, 該方法θ=1由于產(chǎn)生的角度扭曲為最小, 所以得到的紋理映射保角效果為最佳。該方法θ=-0.2較好地平衡了角度扭曲、面積扭曲和拉伸扭曲, 所以得到的紋理映射非常均勻美觀。綜上所述, 該方法與其它自由邊界參數(shù)化方法比較, 在扭曲度量和紋理映射等方面均有一定優(yōu)勢。

圖6 自由邊界的平面參數(shù)化和紋理映射的比較

表2 自由邊界的平面參數(shù)化的扭曲度量和運行時間的比較
在實驗3中, 將可拉伸的ARAP++曲面參數(shù)化算法與其它經(jīng)典球面參數(shù)化方法進行比較, 這些方法包括Convex[4], Hierarchical[13]和ARAP++方法[6]。選擇這3種經(jīng)典方法作為比較對象主要是因為Convex方法是球面凸組合方法,它是許多參數(shù)化方法改進的基礎(chǔ)。Hierarchical方法是分層的參數(shù)化方法,可以保面積和拉伸。這種方法用來驗證該研究的拉伸度量。ARAP++方法是該研究參數(shù)化方法改進的基礎(chǔ),用來驗證該研究方法的改進效果。該方法中的θ=-0.2和θ=1。
如圖7所示, 比較了球面參數(shù)化結(jié)果和其對應(yīng)的紋理映射。實驗中使用了2個模型 Bimba和Lion, 在表3中, 比較了各種球面參數(shù)化方法的扭曲度量(角度、面積、拉伸)以及運行時間。通過分析實驗數(shù)據(jù)可發(fā)現(xiàn), 該方法θ=1產(chǎn)生的角度扭曲是最小的。該方法θ=-0.2產(chǎn)生的面積扭曲要高于Hierarchical方法, 但是要好于其它2種球面參數(shù)化方法。在拉伸扭曲的比較中, 該方法θ=-0.2得到的結(jié)果是最好的。在運行時間的比較中, 該方法略慢于Convex方法, 但是好于Hierarchical和ARAP++2種方法。在紋理映射的比較中, 該方法θ=1由于產(chǎn)生的角度扭曲是最小的, 所以得到的紋理映射保角效果為最佳。該方法θ=-0.2較好地平衡了角度、面積和拉伸扭曲, 所以得到的紋理映射非常均勻美觀。綜上所述, 該方法在各種扭曲度量和紋理映射等方面均有一定的優(yōu)勢。

圖7 球面參數(shù)化和紋理映射的比較

表3 球面參數(shù)化的扭曲度量和運行時間的比較
(1)該項研究提出了可拉伸的ARAP++曲面參數(shù)化算法, 它建立了局部全局參數(shù)化算法的從平面區(qū)域到球面區(qū)域過渡的橋梁,實現(xiàn)了從共形參數(shù)化到等距參數(shù)化的漸變過渡, 與以往一些經(jīng)典算法比較時具有一定的優(yōu)勢, 也得到了較好的紋理映射結(jié)果。
(2)在理論上,拉伸因子θ與三維模型本身、參數(shù)化初值以及期望獲得的參數(shù)化結(jié)果相關(guān),通過分析θ與參數(shù)化質(zhì)量之間的關(guān)系,可以總結(jié)出如下變化規(guī)律,θ的有效取值范圍大致為[-2, 2], 當(dāng)θ的取值小于零時,參數(shù)化結(jié)果的保角效果逐漸變差,而保面積和拉伸的效果會越來越好。
(3)該方法與一些經(jīng)典參數(shù)化方法相比, 如凸組合方法、ARAP方法等,形式更加靈活,可以通過調(diào)整參數(shù),來調(diào)整拉伸漸變,得到從保角度到保面積的一系列結(jié)果,另外,該種方法還可以從二維空間推廣到三維空間,從而得到對應(yīng)的球面參數(shù)化結(jié)果,因此本文方法在靈活性方面具有一定的優(yōu)勢。但是該方法也存在著局限性, 在選取計算拉伸因子θ的時候, 往往需要多次實驗, 才能選取合適的閾值。