范 健,李亞娟,劉建貞,鄧重陽
(杭州電子科技大學(xué)理學(xué)院,浙江 杭州 310018)
與參數(shù)曲面相比,細分曲面更易表達復(fù)雜拓撲結(jié)構(gòu)和幾何特征,計算效率更高,發(fā)展及應(yīng)用更廣泛[1]?,F(xiàn)有的細分曲面造型方法分為插值型細分方法[2]和逼近型細分方法[3]兩大類。對插值型細分方法而言,通常從點的位置信息出發(fā),經(jīng)過網(wǎng)格不斷細化從而得到其極限曲面;而極限曲面不易像參數(shù)曲面一樣得到相應(yīng)的幾何信息,且在不改變初始網(wǎng)格點位置的前提下,不方便調(diào)整極限曲面的局部形狀。Coons曲面[4]是根據(jù)邊界條件而成的曲面,是最常見的參數(shù)曲面之一,與Bézier曲面和B樣條曲面相比,其優(yōu)點在于插值給定邊界條件。本文提出一種基于Coons曲面的插值細分方法,適用于任意拓撲四邊形網(wǎng)格。滿足點插值的同時也滿足切向插值,容易得到曲面的導(dǎo)矢信息,且在不改變初始網(wǎng)格點位置的情況下,可通過改變初始切向達到調(diào)整極限曲面形狀的效果。
給定參數(shù)曲面Z(u,v),0≤u,v≤1,它在u方向和v方向的一對邊界分別記為Z(u,0),Z(u,1),Z(0,v),Z(1,v)。若對其邊界作插值,得到新的曲面為:
X(u,v)=(1-u)Z(0,v)+uZ(1,v)+(1-v)Z(u,0)+vZ(u,1)-
(1)
稱曲面X(u,v)為Coons曲面,其中Z(0,0),Z(0,1),Z(1,0),Z(1,1)為參數(shù)曲面Z(u,v)的4個角點。顯然,參數(shù)曲面Z(u,v)的邊界線也是Coons曲面X(u,v)的邊界線。
通過式(1)得到Coons曲面兩方向u,v的切向為:
Xu(u,v)=(1-v)Zu(u,0)+vZu(u,1)-Z(0,v)+Z(1,v)-
(2)
(3)
式中,Zu(u,0),Zu(u,1),Zv(0,v)和Zv(1,v)分別為邊界曲線Z(u,0),Z(u,1),Z(0,v)和Z(1,v)的切向。
本文研究四邊形網(wǎng)格的插值型細分方法,面的分裂方式是1分為4,分裂方式如圖1所示。對于給定的四邊形網(wǎng)格,細分過程中,每個面和每條邊分別插入1個新點,稱之為新面點和新邊點,每條邊的新邊點分別與邊的兩端點連接,每個面的新面點分別與4條邊的新邊點連接,形成新的細分網(wǎng)格。
圖1 面的分裂方式
對于面1-4分裂的帶切向的插值細分方法,每次細分過程中,應(yīng)分別計算每條邊的新邊點及其切向和每個面的新面點及其切向。
圖2 新邊點的計算示圖
為了敘述方便,分別稱新邊點的兩方向切向為沿邊切向和跨界切向,沿邊切向是新邊點對應(yīng)于新邊點和舊邊的端點所連邊的切向,跨界切向是新邊點對應(yīng)于新邊點和新面點所連邊的切向。新面點的計算如圖2所示,令舊邊e的2個端點分別為P0和P1,向量T0和T1分別為點P0和P1的沿邊e的切向,l為邊e的長度,輔助點Q0和Q1分別為:
P0,Q0,Q1和P1依次相連形成特征多邊形,由此構(gòu)造1條三次Bézier曲線[5]:
令包含內(nèi)部邊e的2個面的新面點分別為F1和F2。對于任何一個滿足一定連續(xù)性的細分方法,只要細分次數(shù)足夠多,新邊點和臨近兩新面點定是近乎共線,因此,新邊點Pe的跨界切向為:
新面點的計算如圖3所示,面f的4條邊對應(yīng)的三次Bézier曲線分別為Z(u,0),Z(u,1),Z(0,v),Z(1,v),以它們作為邊界曲線,構(gòu)造1個插值這些曲線的Coons曲面X(u,v)。根據(jù)式(1)—式(3),取Coons曲面內(nèi)部一點,
和該點處的兩方向切向,
作為面f的新面點與其兩方向切向。
圖3 新面點的計算示圖
圖4 邊界新邊點的計算示圖
本文提出的基于Coons曲面的插值細分方法在任意一點處G1連續(xù)。細分過程中,任意一條舊邊新插入的點皆通過構(gòu)造相應(yīng)的三次Bézier曲線采樣得到,因此,只需證明任意兩相鄰點通過本文方法不斷構(gòu)造三次Bézier曲線插入新點得到的細分曲線收斂且G1連續(xù),即可證明極限曲面的收斂性及光滑性。
圖5 收斂性證明
圖6 光滑性證明
采用本文提出的基于Coons曲面的插值細分方法進行實驗時,需給定初始網(wǎng)格點的切矢。初始網(wǎng)格的規(guī)則點需輸入2個方向的初始切向,不規(guī)則點需設(shè)定更多方向的初始切向,手動給定所有點的初始切向過于不便,為此本文提出一種生成初始切向的方法。
(2)不規(guī)則點的處理。先確定不規(guī)則點的切平面。切平面的法向量包含此點所有四邊形網(wǎng)格的單位法向量的均值;若四邊形網(wǎng)格4個頂點不共面,則取四邊形網(wǎng)格上該點及與其相鄰兩點所在平面的法向量,然后不規(guī)則點的各沿邊切向取為各邊在切平面上的單位投影向量。
本文細分方法在點插值的基礎(chǔ)上也能保證切向插值,所以能夠保證形狀可調(diào)控及造型更自由的特點。用本文方法設(shè)計插值曲面時,可在待插值點處先選定好所期望的切平面,初始網(wǎng)格在該點處的切向若皆選自于所期望的切平面,則極限曲面在該插值點處的切平面即為所選定的切平面。
采用本文方法生成網(wǎng)格點初始切向的細分實例如圖7所示,圖7中部分細分實例所對應(yīng)的斑馬紋理圖和高斯曲率圖如圖8所示。
圖7 初始網(wǎng)格及其極限曲面
圖8 斑馬紋理圖和高斯曲率圖
Kobbelt細分方法[7]作為經(jīng)典的點插值細分方法,常應(yīng)用于細分曲面。分別采用本文提出的基于Coons曲面的插值細分方法和Kobbelt細分方法進行實驗,實例效果如圖9所示。
圖9 不同細分方法的極限曲面
從圖9可以看出,在不改變初始網(wǎng)格點的位置前提下,Kobbelt細分方法極限曲面的形狀是固定的,而本文細分方法通過調(diào)整初始點的切向,達到調(diào)整極限曲面形狀的效果。這是因為本文細分方法的初始網(wǎng)格每個點皆可選取滿足需要的切向,額外自由度可調(diào)整插值曲面的形狀,使得造型更加靈活自由。
經(jīng)典插值型細分方法在不改變初始網(wǎng)格點位置的前提下,不便調(diào)整曲面的局部形狀,為此,本文提出一種帶切向的插值細分方法,簡單易實現(xiàn),造型靈活自由,得到效果不錯的插值曲面。但是,在初始網(wǎng)格點切向選取較為極端或初始網(wǎng)格過于復(fù)雜的情況下,極限曲面可能出現(xiàn)自相交的情況,光滑性有待進一步提高,如何改進細分規(guī)則以改善這些問題是下一步研究的重點。