專利名稱:一種基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法
技術(shù)領(lǐng)域:
本發(fā)明屬于幾何體造型技術(shù)領(lǐng)域,特別是涉及一種基于三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法。
背景技術(shù):
細(xì)分方法是一個從離散到離散的過程,從初始多面體或多邊形網(wǎng)格出發(fā),遞歸地調(diào)用細(xì)分規(guī)則加密控制網(wǎng)格,最終在極限意義下,網(wǎng)格序列收斂到連續(xù)甚至光滑曲線、曲面,具有許多參數(shù)方法和隱式方法表示的優(yōu)點,適合計算機(jī)的離散表示。1990年,Dyn等人在論文“A butterflysubdivision scheme for surface interpolatory with tension control.ACMTransactions on Graphics.9(1990)160-169”中把曲線的插值方法推廣到了曲面,形成了曲面插值細(xì)分方法,開創(chuàng)了曲面插值細(xì)分的先河。
近年來使用細(xì)分方法迭代構(gòu)造三維幾何實體作為一個新的研究方向,在理論和應(yīng)用中逐漸得到了重視和發(fā)展,成為一種新的體造型的手段。曲面細(xì)分方法目的在于建立了一種基于離散數(shù)據(jù)迭代細(xì)化的方法快速建立三維數(shù)據(jù)體的技術(shù),表現(xiàn)出了很多新的特性和優(yōu)點。其中,三角形拓?fù)渚W(wǎng)格是形成三維幾何形體和進(jìn)行有限元等計算中常用的三維形體表示的拓?fù)浣Y(jié)構(gòu)。
目前與基于曲面細(xì)分方法的幾何造型方法相關(guān)的技術(shù)方案有1996年,D.Zorin,P. Schrder,W.Sweldens在論文“Interpolating Subdivision forMeshes with Arbitrary Topology.SIGGRAPH 96 Proceedings(1996)189-192”中提出在三角形拓?fù)渚W(wǎng)格上的插值型曲面細(xì)分方法。這是當(dāng)今最為流行的曲面插值細(xì)分方法,但是該細(xì)分方法生成的曲面只能達(dá)到C1連續(xù),曲面的光順性難免不足,為了克服這個缺點,本發(fā)明提供了一種在正則情形下能達(dá)到C2連續(xù),在奇異點C1連續(xù)的插值細(xì)分曲面,提高了細(xì)分曲面的光滑效果。同時本細(xì)分曲面在一次細(xì)分時把一個三角形分裂為9個,1996年Zorin提出的方法在一次細(xì)分時只把一個三角形分裂為4個,因而本細(xì)分方法在生成相同復(fù)雜度的模型時具有更高的速度優(yōu)勢。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種能生成更光滑曲面,而且速度更快的基于三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法。
為了實現(xiàn)發(fā)明目的,采用的技術(shù)方案為一種基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法的主要步驟包括1)利用拓?fù)湟?guī)則將三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,以增加新頂點并形成新的網(wǎng)格拓?fù)洌?)利用幾何規(guī)則計算所有頂點的幾何位置;3)循環(huán)迭代上述步驟1、2至滿足循環(huán)停止條件。
所述拓?fù)湟?guī)則為(1)在拓?fù)渚W(wǎng)格的每一個三角形中,對于三角形的三條邊,各產(chǎn)生2個新的邊點。原三角形每條邊應(yīng)包含兩個頂點,這里稱為A、B,現(xiàn)于每條邊都生成了2個新的邊點C、D,我們定義D到A的距離不比C到A的距離大。分別連接邊點A與C,C與D,D與B,新生成3條邊AC、CD、DB,用新生成的3條邊AC、CD、DB代替原有邊AB。對于每個三角形,除了在每條邊各生成2個新邊點外,還在每個三角形中生成一個面點。根據(jù)面點和三角形3條邊共9個邊點的位置,把一個三角形分裂成9個新三角形。
(2)原有的拓?fù)渚W(wǎng)格頂點保持不變。
所述幾何規(guī)則包括不規(guī)則三角形幾何規(guī)則和規(guī)則三角形幾何規(guī)則。
所述不規(guī)則三角形幾何規(guī)則具體如下,該幾何規(guī)則涉及到2個不同邊點和1個面點(I)邊點1以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么邊點1的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法w0=89w1=4+n9nwk=49ncos2πkn,(k=2,3,···,n)]]>(II)邊點2以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么邊點2的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法w0=59w1=4+4n9nwk=49ncos2πkn,(k=2,3,···,n)]]>(III)面點以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么面點的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法當(dāng)與不規(guī)則頂點P0鄰接的頂點有且只有3個時候,w0=23,w1=518,w2=518,w3=-29.]]>當(dāng)與不規(guī)則頂點P0鄰接的頂點有且只有4個時候,w0=23,w1=15+3372,w2=15+3372,w3=3+3372,w4=3+3372.]]>當(dāng)與不規(guī)則頂點P0鄰接的頂點多于4個時候,
其中 (IV)原頂點位置保持不變。
所述規(guī)則三角形幾何規(guī)則,具體如下,該幾何規(guī)則涉及到1個邊點和1個面點(I)邊點每條邊都包含兩個頂點,取出所有與該兩個頂點相鄰接的所有頂點,在規(guī)則情況下,這些鄰接的頂點為8個,加上邊的原有的2個頂點,共有10個頂點,把它們標(biāo)記為P1、P2、P3、...、P10。其中P1、P2為邊的兩個頂點,P3、P4為與P1、P2都相鄰的兩個頂點,P9為與P1相鄰,但是不與P3、P4相鄰的頂點,P10為與P2相鄰,但是不與P3、P4相鄰的頂點,P5、P6為與P1相鄰但不與P2相鄰的頂點,P7、P8為與P2相鄰但不與P1相鄰的頂點。那么邊點的計算方法為q=αP1+βP2+γP3+γP4+δP5+δP6+ξP7+ξP8+εP9+νP10,其中α=136(24+2411),β=136(12-2411),γ=136(4),δ=136(-2-611),]]>ξ=136(-2+611),ϵ=0,v=0.]]>(II)面點每個三角形包含3個頂點,取出所有包含這三個頂點至少其中一個的三角形,這樣的三角形一共有13個,這13三角形中一共有12個不同的頂點。標(biāo)記面點所在三角形的三個頂點為P1,P2,P3,同時與P1、P2相鄰的頂點為P4,同時與P2、P3相鄰的頂點為P5,同時與P1、P3相鄰的頂點為P6,其余頂點為P7、P8、P9、P10、P11、P12。那么面點的計算方法為q=136(14+611)(P1+P2+P3)+136(-1211)(P4+P5+P6)+136(-1+311)Σj=712Pj]]>(III)頂點保持不變。
上述規(guī)則三角形幾何規(guī)則所涉及的拓?fù)湟饬x上的規(guī)則三角形的幾何約束為(1)所有的拓?fù)渚W(wǎng)格都很好連接在一起,也就是說沒有孤立點或者孤立邊,每一個點都在邊上,每一條邊都在面上;(2)每一個面元素都是封閉體,由邊包圍而成,也就是說三角形包圍的面不會形成漏縫或者洞,面不會相交和自相交;(3)每條邊都為2個三角形所共享。
(4)對于規(guī)則三角形拓?fù)渚W(wǎng)格,一個點僅與6條邊相連。
所述循環(huán)停止條件為三角形已經(jīng)達(dá)到設(shè)定的足夠的計算精度或顯示精度、或三角形的最長的一條邊的長度小于設(shè)定的值、或三角形最大的元素小于設(shè)定的參數(shù)值、或三角形的數(shù)量大于設(shè)定的參數(shù)值。
本發(fā)明方案定義的是在三角形拓?fù)浣Y(jié)構(gòu)實體上的細(xì)分規(guī)則,在面上要求有分布較均勻的拓?fù)渚W(wǎng)格點,這些網(wǎng)格點將被插值,并進(jìn)一步細(xì)分,逐漸形成稠密的體數(shù)據(jù)點集。
其優(yōu)越性如下(1)對于三角形的三維網(wǎng)格數(shù)據(jù),可以通過本發(fā)明,經(jīng)過迭代計算生成稠密的連續(xù)面數(shù)據(jù);(2)插值型方法所生成的圖形經(jīng)過其初始的控制頂點,當(dāng)需要進(jìn)行幾何形體變形時,可以直接操縱控制頂點,進(jìn)行交互式的操作,易于構(gòu)造任意形狀的三維幾何形體。
(3)本方法能夠生成更加光滑的曲面。一般的方法只能生成C1連續(xù)的細(xì)分曲面,而本方法能夠生成正則區(qū)域C2連續(xù)、奇異點C1連續(xù)的曲面。
(4)本方法的生成曲面速度更快。一般的方法在每次細(xì)分時,只把一個三角形分裂成4個新的三角形,而本方法每次細(xì)分時,把一個三角形分裂成9個新的三角形,因而能更快地形成密集網(wǎng)格。
圖1為基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法流程圖;圖2為三角形面片分裂示意圖;圖3為規(guī)則三角形邊點細(xì)分規(guī)則示意圖;圖4為不規(guī)則三角形邊點細(xì)分規(guī)則示意圖;圖5為基于高階三角形插值曲面細(xì)分效果圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明做進(jìn)一步的說明。
如圖1所示為基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法流程圖,首先利用拓?fù)湟?guī)則將三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,以增加新頂點并形成新的網(wǎng)格拓?fù)洌又脦缀我?guī)則計算所有頂點的幾何位置;最后循環(huán)迭代上述步驟至滿足循環(huán)停止條件。
具體過程如下一、利用拓?fù)湟?guī)則將三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,以增加新頂點并形成新的網(wǎng)格拓?fù)浔景l(fā)明對規(guī)則三角形的細(xì)分過程如附圖2所示,先對該三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,附圖2左圖為原三角形,右圖為分裂后三角形,具體如下1)三角形的3條邊上,各生成2個邊點。
2)在每個三角形中,各生成1個面點。
3)分別連接新生成的邊點和面點。
4)按照附圖2右圖的規(guī)則連接新生成的邊點與三角形原有的頂點。
5)從幾何數(shù)據(jù)中刪除三角形原有的3條邊,用附圖2右圖中的18條邊取代。
6)從幾何數(shù)據(jù)中刪除原有三角形,用附圖2右圖中的9個三角形取而代之。
二、利用幾何規(guī)則計算所有頂點的幾何位置對網(wǎng)格中的所有三角形進(jìn)行分裂后,通過幾何規(guī)則計算點的位置,具體如下(1)若三角形為規(guī)則三角形,即三角形3個頂點都為規(guī)則頂點,與三角形3個頂點相連接的邊的數(shù)目均為6,那么按照圖3(b)給出的掩膜,從三角形網(wǎng)格數(shù)據(jù)中取出相對應(yīng)的點,按照以下方法計算新插入邊點的位置q=αP1+βP2+γP3+γP4+δP5+δP6+ξP7+ξP8+εP9+νP10,其中α=136(24+2411),β=136(12-2411),γ=136(4),δ=136(-2-611),]]>ξ=136(-2+611),ϵ=0,v=0.]]>按照圖3(a)給出的掩膜,從三角形網(wǎng)格數(shù)據(jù)中取出相對應(yīng)的點,按照以下方法計算新插入面點的位置q=136(14+611)(P1+P2+P3)+136(-1211)(P4+P5+P6)+136(-1+311)Σj=712Pj]]>(2)若三角形為非規(guī)則三角形,即三角形3個頂點中,至少有一個頂點滿足此條件與該頂點相鄰接的邊的數(shù)目不為6。對于邊點的生成,取出連接的邊數(shù)目不為6的頂點P0,然后再取出所有與該頂點相連接的頂點,把相連接的頂點按照逆時針或者順時針順序排放好,以邊點所在的頂點為P1,其余點按排放順序編號為P2、P3、P4、....,假設(shè)共有n個頂點,那么新插入的2個邊點和面點的位置應(yīng)該用如下方法確定q=w0p0k+Σi=1nwipik,]]>其中Wi為與Pi對應(yīng)的權(quán)重。
對于邊點1,如圖4(a),其權(quán)重的計算方法為w0=89w1=4+n9nwk=49ncos2πkn,(k=2,3,···,n),]]>對于邊點2,如圖4(b),其權(quán)重的計算方法為
w0=59w1=4+4n9nwk=49ncos2πkn,(k=2,3,···,n)]]>對于面點,如圖4(c),其權(quán)重的計算方法為當(dāng)與不規(guī)則頂點V0鄰接的頂點有且只有3個時候,w0=23,w1=518,w2=518,w3=-29.]]>當(dāng)與不規(guī)則頂點V0鄰接的頂點有且只有4個時候,w0=23,w1=15+3372,w2=15+3372,w3=3+3372,w4=3+3372.]]>當(dāng)與不規(guī)則頂點V0鄰接的頂點多于4個時候, 其中 (3)計算頂點,原頂點位置在細(xì)分過程中保持不變。
三、循環(huán)迭代上述步驟一、二至滿足循環(huán)停止條件循環(huán)停止條件為三角形已經(jīng)達(dá)到設(shè)定的足夠的計算精度或顯示精度、或三角形的最長的一條邊的長度小于設(shè)定的值、或三角形最大的元素小于設(shè)定的參數(shù)值、或三角形的數(shù)量大于設(shè)定的參數(shù)值。
如圖5所示為基于高階三角形插值曲面細(xì)分效果圖,通過以上的三角形插值曲面細(xì)分算法,一個三角形將被分成9個小的三角形,在曲面細(xì)分循環(huán)迭代計算中,可能的循環(huán)停止條件如下已經(jīng)達(dá)到足夠的計算精度或顯示精度;最長的一條邊的長度小于某個預(yù)先給定的值;或者最大的面元素都小于某個參數(shù)值;面元素的數(shù)量大于某個參數(shù)值。
實驗表明,一般進(jìn)行2-3次曲面細(xì)分就能夠得到較稠密的體數(shù)據(jù),滿足應(yīng)用要求。
本發(fā)明在三角形拓?fù)浣Y(jié)構(gòu)實體上的細(xì)分規(guī)則,,網(wǎng)格中的點將被插值,并進(jìn)一步細(xì)分,逐漸形成稠密的體數(shù)據(jù)點集。
權(quán)利要求
1.一種基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,它主要步驟包括1)利用拓?fù)湟?guī)則將三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,以增加新頂點并形成新的網(wǎng)格拓?fù)洌?)利用幾何規(guī)則計算所有頂點的幾何位置;3)循環(huán)迭代上述步驟1、2至滿足循環(huán)停止條件。
2.根據(jù)權(quán)利要求1所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述步驟1)的拓?fù)湟?guī)則為a)在拓?fù)渚W(wǎng)格的每一個三角形中,對于三角形的三條邊,各產(chǎn)生2個新的邊點,還在每個三角形中生成一個面點,根據(jù)面點和三角形3條邊共9個邊點的位置,把一個三角形分裂成9個新三角形;b)原有的拓?fù)渚W(wǎng)格頂點保持不變。
3.根據(jù)權(quán)利要求1所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述步驟2)的幾何規(guī)則包括不規(guī)則三角形幾何規(guī)則和規(guī)則三角形幾何規(guī)則。
4.根據(jù)權(quán)利要求3所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述不規(guī)則三角形幾何規(guī)則涉及到2個不同邊點和1個面點,具體如下(I)邊點1以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么邊點1的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法w0=89w1=4+n9nwk=49ncos2πkn,(k=2,3,...,n)]]>(II)邊點2以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么邊點2的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法w0=59w1=4+4n9nwk=49ncos2πkn,(k=2,3,...,n)]]>(III)面點以不規(guī)則頂點P0為中心,得到所有與不規(guī)則頂點相連接的頂點構(gòu)成一個頂點環(huán),P1、P2、P3、...、Pn為頂點環(huán)上順時針或逆時針排放的所有頂點,其中W1、W2、W3、...、Wn為與頂點對應(yīng)的權(quán)重,那么面點的計算方法為q=w0p0k+Σi=1nwipik]]>權(quán)重的計算法方法當(dāng)與不規(guī)則頂點P0鄰接的頂點有且只有3個時候,w0=23,]]>w1=518,]]>w2=518,]]>w3=-29;]]>當(dāng)與不規(guī)則頂點P0鄰接的頂點有且只有4個時候,w0=23,]]>w1=15+3372,]]>w2=15+3372,]]>w3=-3+3372,]]>w4=-3+3372;]]>當(dāng)與不規(guī)則頂點P0鄰接的頂點多于4個時候, 其中(IV)原頂點位置保持不變。
5.根據(jù)權(quán)利要求3所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述規(guī)則三角形幾何規(guī)則涉及到1個邊點和1個面點,具體如下(I)邊點每條邊都包含兩個頂點,取出所有與該兩個頂點相鄰接的所有頂點,在規(guī)則情況下,這些鄰接的頂點為8個,加上邊的原有的2個頂點,共有10個頂點,把它們標(biāo)記為P1、P2、P3、...、P10,其中P1、P2為邊的兩個頂點,P3、P4為與P1、P2都相鄰的兩個頂點,P9為與P1相鄰,但是不與P3、P4相鄰的頂點,P10為與P2相鄰,但是不與P3、P4相鄰的頂點,P5、P6為與P1相鄰但不與P2相鄰的頂點,P7、P8為與P2相鄰但不與P1相鄰的頂點,那么邊點的計算方法為q=αP1+βP2+γP3+γP4+δP5+δP6+ξP7+ξP8+εP9+νP10,其中α=136(24+2411),]]>β=136(12-2411),]]>γ=136(4),]]>δ=136(-2-611),]]>ξ=136(-2+611),]]>ε=0,ν=0;(II)面點每個三角形包含3個頂點,取出所有包含這三個頂點至少其中一個的三角形,這樣的三角形一共有13個,這13三角形中一共有12個不同的頂點,標(biāo)記面點所在三角形的三個頂點為P1,P2,P3,同時與P1、P2相鄰的頂點為P4,同時與P2、P3相鄰的頂點為P5,同時與P1、P3相鄰的頂點為P6,其余頂點為P7、P8、P9、P10、P11、P12,那么面點的計算方法為q=136(14+611)(P1+P2+P3)+136(-1211)(P4+P5+P6)+136(-1+311)Σj=712Pj]]>(III)頂點保持不變。
6.根據(jù)權(quán)利要求3或5所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述三角形幾何規(guī)則所涉及的拓?fù)湟饬x上的規(guī)則三角形的幾何約束為(1)所有的拓?fù)渚W(wǎng)格都很好連接在一起,也就是說沒有孤立點或者孤立邊,每一個點都在邊上,每一條邊都在面上;(2)每一個面元素都是封閉體,由邊包圍而成,也就是說三角形包圍的面不會形成漏縫或者洞,面不會相交和自相交;(3)每條邊都為2個三角形所共享;(4)對于規(guī)則三角形拓?fù)渚W(wǎng)格,一個點僅與6條邊相連。
7.根據(jù)權(quán)利要求1所述的基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,其特征在于,所述步驟3)中的循環(huán)停止條件為三角形已經(jīng)達(dá)到設(shè)定的足夠的計算精度或顯示精度、或三角形的最長的一條邊的長度小于設(shè)定的值、或三角形最大的元素小于設(shè)定的參數(shù)值、或三角形的數(shù)量大于設(shè)定的參數(shù)值。
全文摘要
本發(fā)明公開了一種基于高階三角形插值曲面細(xì)分的幾何數(shù)據(jù)細(xì)分方法,它屬于幾何體造型技術(shù)領(lǐng)域。該方法主要步驟包括1)利用拓?fù)湟?guī)則將三角形的拓?fù)渚W(wǎng)格進(jìn)行分裂,以增加新頂點并形成新的網(wǎng)格拓?fù)洌?)利用幾何規(guī)則計算所有頂點的幾何位置;3)循環(huán)迭代上述步驟1)、2)至滿足循環(huán)停止條件。利用此方法經(jīng)過迭代計算生成稠密的連續(xù)面數(shù)據(jù),所生成的圖形經(jīng)過其初始的控制頂點,當(dāng)需要進(jìn)行幾何形體變形時,可以直接操縱控制頂點,進(jìn)行交互式的操作,易于構(gòu)造任意形狀的三維幾何形體,而且本方法能夠生成正則區(qū)域C2連續(xù)、奇異點C1連續(xù)的曲面。
文檔編號G06T17/10GK1975787SQ20061012398
公開日2007年6月6日 申請日期2006年12月1日 優(yōu)先權(quán)日2006年12月1日
發(fā)明者凌若天, 羅笑南 申請人:中山大學(xué)