專利名稱:插值細(xì)分方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形學(xué)中的曲面造型方法,特別涉及一種插值細(xì)分方法。
背景技術(shù):
隨著各種三維數(shù)據(jù)獲取技術(shù)的不斷完善和成熟,逆向工程在計(jì)算機(jī)輔助設(shè)計(jì) (Computer Aided Design, CAD)或計(jì)算機(jī)繪圖(Computer Graphics, CG)應(yīng)用中越來(lái)越受 重視。由三維掃描設(shè)備獲取的是任意拓?fù)浣Y(jié)構(gòu)的網(wǎng)格,如何表示它們以便對(duì)其進(jìn)行存儲(chǔ)、傳 輸、編輯、繪制成為亟待解決的問(wèn)題。近幾年,隨著細(xì)分理論的日趨完善,對(duì)細(xì)分曲線、曲面 方法的研究成了圖形學(xué)領(lǐng)域的一個(gè)熱點(diǎn)。就細(xì)分曲面方法而言,現(xiàn)有的方法大部分都是針 對(duì)三角網(wǎng)格和四角網(wǎng)格的,可以分為逼近細(xì)分或插值細(xì)分兩類。逼近方法收斂速度快而且 光滑性好,但對(duì)初始網(wǎng)格的形狀和體積改變很大;插值方法可以很好地控制模型,但曲面的 光滑性一般。下面簡(jiǎn)要介紹兩種經(jīng)典的基于三角形網(wǎng)格的細(xì)分方法Loop方法和Butterfly方 法。Loop和Butterfly細(xì)分都是1-4的細(xì)分。也就是一次細(xì)分后,一個(gè)三角形將變?yōu)樗膫€(gè) 小三角形。對(duì)于三角形的每一條邊,都會(huì)生成一個(gè)新的邊點(diǎn)。經(jīng)過(guò)多次細(xì)分后絕大多數(shù)頂點(diǎn) 的價(jià)都為6,因此,價(jià)為6的頂點(diǎn)被稱為規(guī)則點(diǎn),價(jià)不等于6的點(diǎn)被稱為奇異點(diǎn)。權(quán)圖表示舊 控制點(diǎn)向新控制點(diǎn)的關(guān)系,在下述各圖中,用白點(diǎn)表示舊控制點(diǎn),用黑點(diǎn)表示新控制點(diǎn)。奇 點(diǎn)是在每一級(jí)細(xì)分中,按照某種規(guī)則所產(chǎn)生的新的點(diǎn),在三角網(wǎng)格中即為邊點(diǎn)。偶點(diǎn)是在每 一級(jí)細(xì)分中,所有從上一級(jí)控制點(diǎn)繼承得到的點(diǎn)。圖1為現(xiàn)有Loop細(xì)分權(quán)圖中的內(nèi)部奇點(diǎn)的示意圖。參見(jiàn)圖1,內(nèi)部奇點(diǎn)表明該奇 點(diǎn)(黑點(diǎn)所示)周圍存在4個(gè)可用于計(jì)算的舊控制點(diǎn)(白點(diǎn)所示),并且,圖1表明4個(gè)舊
控制點(diǎn)的加權(quán)系數(shù)分別為|、|、^、^。即新產(chǎn)生的奇點(diǎn)的三維坐標(biāo)P的計(jì)算公式為
) ; pQ、Pi、p2、p3分別是舊控制點(diǎn)的三維坐標(biāo)。圖2為現(xiàn)有Loop細(xì)分權(quán)圖中的內(nèi)部偶點(diǎn)的示意圖。參見(jiàn)圖2,黑點(diǎn)表示新的 奇點(diǎn),白點(diǎn)表示偶點(diǎn),偶點(diǎn)與原始控制頂點(diǎn)一一對(duì)應(yīng)。偶點(diǎn)三維坐標(biāo)P'的計(jì)算公式為
; /為該偶點(diǎn)周圍的奇點(diǎn)的三維坐標(biāo)(即先要計(jì)算出奇點(diǎn)才能算偶 i=0
點(diǎn)),P為繼承的舊控制點(diǎn)的三維坐標(biāo)偶點(diǎn)原始坐標(biāo),3為奇點(diǎn)的加權(quán)系數(shù),k為奇點(diǎn)的個(gè) 數(shù)。其中,—(臺(tái)+ |cos宇)2]。對(duì)于價(jià)大于3的頂點(diǎn),可按公式來(lái)計(jì)算;當(dāng)頂點(diǎn)
的價(jià)等于3時(shí),可以取/ = $。圖3為現(xiàn)有Loop細(xì)分權(quán)圖中的邊界奇點(diǎn)的示意圖。參見(jiàn)圖3,邊界奇點(diǎn)為其周圍 只存在2個(gè)舊控制點(diǎn),而不是如圖1那樣存在6個(gè)。邊界奇點(diǎn)的三維坐標(biāo)P的計(jì)算公式為
分別是舊控制點(diǎn)的三維坐標(biāo)。
圖4為現(xiàn)有Loop細(xì)分權(quán)圖中的邊界偶點(diǎn)的示意圖。參見(jiàn)圖4,邊界偶點(diǎn)為其周圍 只存在2個(gè)奇點(diǎn),而不是如圖2那樣存在6個(gè)。邊界偶點(diǎn)的三維坐標(biāo)P'的計(jì)算公式為
,分別是奇點(diǎn)的三維坐標(biāo),P為繼承的舊控制點(diǎn)的三維坐標(biāo)。Butterfly細(xì)分是根據(jù)其權(quán)圖的形狀來(lái)命名的。與Loop細(xì)分最主要的區(qū)別是,它 采用的是插值策略,而不是逼近策略。插值策略中偶點(diǎn)無(wú)需重新計(jì)算,只計(jì)算奇點(diǎn)即可。在 Butterfly細(xì)分中,對(duì)于連接兩個(gè)規(guī)則點(diǎn)的邊,新的邊點(diǎn)被稱為有規(guī)則臨接點(diǎn)的內(nèi)部奇點(diǎn); 對(duì)于連接一個(gè)規(guī)則點(diǎn)和一個(gè)奇異點(diǎn)的邊,新的邊點(diǎn)被叫做臨接點(diǎn)為半規(guī)則點(diǎn)的內(nèi)部奇點(diǎn)。圖5為現(xiàn)有Butterfly細(xì)分權(quán)圖中的規(guī)則臨接點(diǎn)的內(nèi)部奇點(diǎn)的示意圖。參見(jiàn)圖5, 有規(guī)則臨接點(diǎn)的內(nèi)部奇點(diǎn)(黑點(diǎn))通過(guò)周圍10個(gè)舊控制點(diǎn)(白點(diǎn))組成的權(quán)圖計(jì)算所得。
相應(yīng)的系數(shù)為,
當(dāng)取w = 0時(shí),退化為由周圍8個(gè)
頂點(diǎn)構(gòu)成的經(jīng)典的蝶形權(quán)圖。之后,可以根據(jù)Loop方法中的加權(quán)計(jì)算方法得到新產(chǎn)生的奇
點(diǎn)o圖6為現(xiàn)有Butterfly細(xì)分權(quán)圖中的臨接點(diǎn)為半規(guī)則點(diǎn)的內(nèi)部奇點(diǎn)的示意圖。參 見(jiàn)圖6,臨接點(diǎn)為半規(guī)則點(diǎn)的內(nèi)部奇點(diǎn)(黑點(diǎn))通過(guò)周圍的舊控制點(diǎn)(系數(shù)&,ASh對(duì)應(yīng) 的白點(diǎn)及之間的白點(diǎn))計(jì)算得到。其中,系數(shù)Si有如下公式(1)確定。 對(duì)于連接兩個(gè)奇異點(diǎn)的邊,新的邊點(diǎn)可以取把兩個(gè)頂點(diǎn)分別按照臨接點(diǎn)為半規(guī)則 點(diǎn)計(jì)算后得到結(jié)果的平均值。圖7為現(xiàn)有Butterfly細(xì)分權(quán)圖中的邊界奇點(diǎn)的示意圖。參見(jiàn)圖7,邊界奇點(diǎn)(黑 點(diǎn))可以由其周圍的4個(gè)舊控制點(diǎn)(白點(diǎn))加權(quán)計(jì)算得到,加權(quán)系數(shù)如圖7中各點(diǎn)對(duì)應(yīng)的 系數(shù)。上述以Loop方法和Butterfly方法為例對(duì)現(xiàn)有的逼近細(xì)分和插值細(xì)分方法進(jìn)行 了簡(jiǎn)要介紹。現(xiàn)有技術(shù)中,逼近細(xì)分方法可以生成光滑的曲面,但是由于其采用的是“磨光” 的方法,造成最終極限曲面在控制網(wǎng)格內(nèi)的收縮,使得造型后的曲面較原始曲面縮小。而插 值細(xì)分方法雖然不會(huì)縮小曲面,但是曲面的光滑性一般。
發(fā)明內(nèi)容
本發(fā)明是提供一種插值細(xì)分方法,可以用于從逼近細(xì)分構(gòu)建出插值細(xì)分格式,解 決逼近細(xì)分生成的極限曲面體積收縮問(wèn)題,并且新插值細(xì)分生成的極限曲面將具有相應(yīng)的 逼近細(xì)分曲面的形狀特點(diǎn)。本發(fā)明提供了一種插值細(xì)分方法,包括步驟81 輸入原始控制網(wǎng)格;步驟82 對(duì)原始控制網(wǎng)格進(jìn)行逼近細(xì)分處理,得到新生成的奇點(diǎn)和偶點(diǎn);
步驟83 將偶點(diǎn)移動(dòng)回其原始位置,并根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn);步驟84:將移動(dòng)后的偶點(diǎn)和奇點(diǎn)組成造型后的曲面,之后,將造型后的曲面作為 下一次輸入的原始控制網(wǎng)格,循環(huán)執(zhí)行步驟12-14,直至達(dá)到預(yù)先設(shè)定的循環(huán)次數(shù)。由上述技術(shù)方案可知,本發(fā)明通過(guò)對(duì)原始控制網(wǎng)格進(jìn)行逼近細(xì)分,可以利用逼近 細(xì)分的優(yōu)勢(shì)使曲面光滑,并且,再將逼近細(xì)分后的偶點(diǎn)移回原來(lái)的位置,奇點(diǎn)隨之移動(dòng),來(lái) 避免逼近細(xì)分造成的收縮問(wèn)題。
圖1為現(xiàn)有Loop細(xì)分權(quán)圖中的內(nèi)部奇點(diǎn)的示意圖;圖2為現(xiàn)有Loop細(xì)分權(quán)圖中的內(nèi)部偶點(diǎn)的示意圖;圖3為現(xiàn)有Loop細(xì)分權(quán)圖中的邊界奇點(diǎn)的示意圖;圖4為現(xiàn)有Loop細(xì)分權(quán)圖中的邊界偶點(diǎn)的示意圖;圖5為現(xiàn)有Butterfly細(xì)分權(quán)圖中的規(guī)則臨接點(diǎn)的內(nèi)部奇點(diǎn)的示意圖;圖6為現(xiàn)有Butterfly細(xì)分權(quán)圖中的臨接點(diǎn)為半規(guī)則點(diǎn)的內(nèi)部奇點(diǎn)的示意圖;圖7為現(xiàn)有Butterfly細(xì)分權(quán)圖中的邊界奇點(diǎn)的示意圖;圖8為本發(fā)明曲面造型方法實(shí)施例的流程示意圖;圖9為本發(fā)明中頂點(diǎn)偏移量第一實(shí)施例的示意圖;圖10為本發(fā)明中權(quán)圖的第一實(shí)施例的示意圖;圖11為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中規(guī)則情況下的示意圖;圖12為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中半規(guī)則情況下的示意圖;圖13為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中邊界情況下的示意圖;圖14為本發(fā)明中權(quán)圖的第二實(shí)施例中規(guī)則情況下的示意圖;圖15為本發(fā)明中權(quán)圖的第二實(shí)施例中半規(guī)則情況下的示意圖;圖16為本發(fā)明中權(quán)圖的第二實(shí)施例中邊界情況下的示意圖;圖17為本發(fā)明中Loop-Butterfly方法中網(wǎng)格Mk的子圖以及和細(xì)分后網(wǎng)格隊(duì)+1中 與其拓?fù)渫瑯?gòu)的子圖的示意圖;圖18為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第一模型細(xì)分后的效果比 較示意圖;圖19為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第二模型細(xì)分后的效果比 較示意圖;圖20為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第三模型細(xì)分后的效果比 較示意圖;圖21為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第四模型細(xì)分后的效果比 較示意圖;圖22為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第五模型細(xì)分后的效果比 較示意圖;圖23為本發(fā)明中的Loop-Butterfly方法與經(jīng)典方法對(duì)第六模型細(xì)分后的效果比 較示意圖。
具體實(shí)施例方式下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。圖8為本發(fā)明曲面造型方法實(shí)施例的流程示意圖,包括步驟81 輸入原始控制網(wǎng)格;步驟82 對(duì)原始控制網(wǎng)格進(jìn)行逼近細(xì)分處理,得到新生成的奇點(diǎn)和偶點(diǎn);步驟83 將偶點(diǎn)移動(dòng)回其原始位置,并根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn);步驟84:將移動(dòng)后的偶點(diǎn)和奇點(diǎn)組成造型后的曲面,之后,將造型后的曲面作為 下一次輸入的原始控制網(wǎng)格,循環(huán)執(zhí)行步驟82-84,直至達(dá)到預(yù)先設(shè)定的循環(huán)次數(shù)。下面對(duì)上述各步驟進(jìn)行較為詳細(xì)的說(shuō)明其中,步驟83中的根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn)具體可以為首先,計(jì)算偶點(diǎn)與 其對(duì)應(yīng)的原始控制點(diǎn)的位移差,即計(jì)算得到偶點(diǎn)的位移差;其次,根據(jù)定義在偶點(diǎn)位移差上 的補(bǔ)差函數(shù)計(jì)算奇點(diǎn)的位移差;最后,用奇點(diǎn)加上其位移差即為移動(dòng)后的奇點(diǎn)。具體的數(shù)學(xué) 描述如下M0和%分別表示原始網(wǎng)格和網(wǎng)格中的節(jié)點(diǎn),L指特定的逼近細(xì)分。一次逼近細(xì)分 可表示為 可以將Mi+1的節(jié)點(diǎn)集Vi+1分為兩個(gè)集合。一個(gè)為L(zhǎng)Vp由Mi+1中的奇點(diǎn)組成,另一個(gè) 由Mi+1中的偶點(diǎn)組成。后者可以通過(guò)Vi+1-LVi計(jì)算出來(lái),標(biāo)記為CLVit)這樣 為了從逼近細(xì)分構(gòu)建出插值細(xì)分,需要構(gòu)造一系列的滿足以下條件的函數(shù)& 這些函數(shù)被稱為補(bǔ)差函數(shù)。為了保留逼近細(xì)分的形狀特點(diǎn),對(duì)節(jié)點(diǎn)集
引入了如下運(yùn)算 然后,將Vi+1更新為Vi U IncrmdCLVi,并將更新后的Vi+1標(biāo)記為incrmdVi+1,如公式 (5) (6)所示,其中IncrmdVi+1被定義為 同樣的Mi+1的更新結(jié)果記為 將公式(2)代入公式(7),可得 公式(9)為本發(fā)明補(bǔ)差方法的一種最終的形式化的表達(dá),L+FiL為推導(dǎo)出的相應(yīng)的 插值細(xì)分方法。incrmdMi+1即為對(duì)虬進(jìn)行一次插值細(xì)分的結(jié)果。本發(fā)明中最關(guān)鍵的步驟為如何構(gòu)建相應(yīng)的補(bǔ)差函數(shù)&?!闱闆r下,任何定義通過(guò)點(diǎn)集P^-P^1的插值曲面的函數(shù)都可以用作補(bǔ)差函
7數(shù)。然而,補(bǔ)差函數(shù)的選取影響著最終極限曲面的形狀特點(diǎn),選取合適的補(bǔ)差函數(shù)是非常必 要的。定義一個(gè)概念網(wǎng)格Ap網(wǎng)格中頂點(diǎn)為點(diǎn)集{PjcZ-Pjc^PjcT G LVJ,這個(gè)概念網(wǎng)格 與控制網(wǎng)格禮是拓?fù)渫瑯?gòu)的,可以理解為逼近細(xì)分后原始頂點(diǎn)偏移量構(gòu)成的差網(wǎng)格。這樣, 每個(gè)頂點(diǎn)
都可以根據(jù)逼近細(xì)分!^在禮中找到其概念位置。顯而易見(jiàn)地,可以 將F(P^+1)定義為八4中^/+1周圍頂點(diǎn)的一個(gè)線性組合作為補(bǔ)差函數(shù)。將概念網(wǎng)格Ai作為控制網(wǎng)格,任何可以為其產(chǎn)生光滑極限曲面的方法都可以用 作補(bǔ)差函數(shù),并且補(bǔ)差函數(shù)可以看作Ai上的一個(gè)細(xì)分方法。如果使用已有的細(xì)分方法作 為補(bǔ)差函數(shù),選擇的細(xì)分方法必須和L具有相同的幾何分裂操作。一旦選定了補(bǔ)差函數(shù),相 應(yīng)的插值方法就可以被構(gòu)建出來(lái)。本發(fā)明的方法可以應(yīng)用于任意的多邊形網(wǎng)格。這里采用三角網(wǎng)格為例作為細(xì)分的 輸入。我們選取了 Loop細(xì)分作為逼近細(xì)分的實(shí)例,從Loop細(xì)分構(gòu)建出相應(yīng)的插值細(xì)分。選 取不同的補(bǔ)差函數(shù)將會(huì)構(gòu)建出不同的插值細(xì)分方法。我們首先選取一種“兩點(diǎn)”線性組合 的方法作為補(bǔ)差函數(shù),接下來(lái)會(huì)選取Butterfly插值作為補(bǔ)差函數(shù)。由于原始頂點(diǎn)又被移回原始位置,IncrmdLVi不會(huì)發(fā)生變化。只需計(jì)算新的邊點(diǎn) IncrmdCLVi0因此,接下來(lái)的公式(10)-(16)使用簡(jiǎn)化的符號(hào)來(lái)進(jìn)行表示。Pi表示新的邊 點(diǎn),P/代指
之間存在一個(gè)偏移APi。APi由補(bǔ)差函數(shù)決定。然后,可以通 過(guò)對(duì)P/補(bǔ)差的方式得到邊點(diǎn) 圖9和圖11-13分別給出了 “兩點(diǎn)”方法和Loop-Buttefly方法中邊點(diǎn)偏移量的 計(jì)算方法。其中實(shí)線繪制的網(wǎng)格為原始控制網(wǎng)格,虛線繪制的網(wǎng)格為一次逼近細(xì)分(L)后 的網(wǎng)格Mi+1。圖10和圖14-16給出了通過(guò)不同方法構(gòu)造出的新的細(xì)分方法的權(quán)圖。圖9為本發(fā)明中頂點(diǎn)偏移量第一實(shí)施例的示意圖。參見(jiàn)圖9,實(shí)線為原始網(wǎng)格,虛 線為逼近細(xì)分后的網(wǎng)格,以三角網(wǎng)格為例,但不限于三角網(wǎng)格。本實(shí)例逼近細(xì)分為L(zhǎng)oop方 法。PpPi*原始控制點(diǎn),P' 0>P'工為逼近細(xì)分后的偶點(diǎn),P'為逼近細(xì)分后的奇點(diǎn),P為 對(duì)奇點(diǎn)移動(dòng)后的點(diǎn)。其中,移動(dòng)后P' 0>P' i又移動(dòng)回其原始網(wǎng)格中的位置,即分別移動(dòng)回 。^勺位置,?為隨著?' 0>P' i的移動(dòng)規(guī)律P'移動(dòng)后的位置。本實(shí)施例中,補(bǔ)差函數(shù)為 兩個(gè)點(diǎn)的線性組合。新的邊點(diǎn)的偏移量可以通過(guò)取邊的兩個(gè)頂點(diǎn)的偏移量的平均值,即 在公式(12),(13)中,p'c^Pp'i可以通過(guò)選取的逼近細(xì)分方法計(jì)算得到。將公式 (11),(12),(13)代入公式(10)??梢酝茖?dǎo)出一個(gè)10點(diǎn)的細(xì)分格式,如圖10所示,圖10為 本發(fā)明中權(quán)圖的第一實(shí)施例的示意圖,針對(duì)兩點(diǎn)補(bǔ)差的情況。其系數(shù)為a 很明顯的,構(gòu)建出的細(xì)分格式正好與當(dāng)w = -1/32時(shí)改進(jìn)蝶形細(xì)分完全一致。因 此,選取新構(gòu)建的細(xì)分格式毫無(wú)疑問(wèn)的可以在規(guī)則情況下產(chǎn)生C1連續(xù)的極限曲面。因此,選取Loop和“兩點(diǎn)”方法分別作為逼近細(xì)分和補(bǔ)差方法,可以通過(guò)L+FiL得到改進(jìn)的蝶形方法。從這一點(diǎn)來(lái)說(shuō),可以認(rèn)為本實(shí)例的方法是插值細(xì)分的一種產(chǎn)生形式。上面的實(shí)例以兩點(diǎn)線性組合作為補(bǔ)差函數(shù)構(gòu)建出了改進(jìn)的蝶形方法。下面的實(shí)例 將選取更多的周圍頂點(diǎn)來(lái)計(jì)算新頂點(diǎn)的偏移量,這里選取了一種8點(diǎn)的方法(Butterfly細(xì) 分)作為補(bǔ)差函數(shù)。也可以理解為用Butterfly方法對(duì)概念網(wǎng)格A i進(jìn)行細(xì)分。如同蝶形細(xì)分,共分四種情況(1)對(duì)于連接兩個(gè)規(guī)則點(diǎn)的邊圖11為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中規(guī)則情況下的示意圖,參見(jiàn)圖11,對(duì)于 連接兩個(gè)規(guī)則點(diǎn)的邊(規(guī)則情況下),這里使用了 8點(diǎn)的權(quán)圖,新邊點(diǎn)的偏移量可以通過(guò)公 式(14)獲取。 其中,Ap為新奇點(diǎn)位移差,Ap。、APl、Ap2、Ap3、Ap4、Ap5、Ap6、厶口7分別為逼 近細(xì)分后該奇點(diǎn)周圍8個(gè)偶點(diǎn)與它們對(duì)應(yīng)的原始控制點(diǎn)的位移差。(2)對(duì)于連接一個(gè)規(guī)則點(diǎn)和一個(gè)奇異點(diǎn)的邊圖12為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中半規(guī)則情況下的示意圖,參見(jiàn)圖12, 對(duì)于連接一個(gè)規(guī)則點(diǎn)和一個(gè)奇異點(diǎn)的邊(半規(guī)則情況下),新邊點(diǎn)的偏移量可以通過(guò)公式 (15)獲取。 其中,Ap新奇點(diǎn)的位移差;Si分別為該奇點(diǎn)周圍的規(guī)則點(diǎn)和奇異點(diǎn)的加權(quán)系數(shù), 具體的數(shù)值可以參照Butterfly方法在半規(guī)則情況下的取值;AP(I為逼近細(xì)分后奇異點(diǎn)與 其原始位置的位移差;A Pi,i = 1,A,n分別為與奇異點(diǎn)鄰接的頂點(diǎn)與其原始位置的位移差。(3)對(duì)于連接兩個(gè)奇異點(diǎn)的邊新邊點(diǎn)的偏移量為兩個(gè)頂點(diǎn)分別按照臨接點(diǎn)為半規(guī)則點(diǎn)計(jì)算后得到結(jié)果的平均 值。這種情況只會(huì)在第一次細(xì)分中出現(xiàn)。(4)對(duì)于邊界圖13為本發(fā)明中頂點(diǎn)偏移量第二實(shí)施例中邊界情況下的示意圖,參見(jiàn)圖13,對(duì)于 邊界情況,新邊點(diǎn)的偏移量可以通過(guò)公式(16)獲取。 其中,Ap為新奇點(diǎn)的位移差;AP(1、APl、Ap2、Ap3分別為該奇點(diǎn)周圍存在的4個(gè) 偶點(diǎn)對(duì)應(yīng)的原始控制點(diǎn)與該偶點(diǎn)的差值。通過(guò)將公式(14),(15),(16)代入公式(10),結(jié)合圖11-13,得到一種新的插值細(xì) 分格式Loop-Butterfly格式。對(duì)于原始網(wǎng)格中每一條邊,插入一個(gè)新的邊點(diǎn)。上述的圖9、10描述了補(bǔ)差函數(shù)為兩點(diǎn)差值的平均值的情況下的偏移量的示意圖 和權(quán)圖,圖11-13描述了補(bǔ)差函數(shù)為插值細(xì)分情況下的偏移量的示意圖,因此,根據(jù)圖9、10 類似的原理,及上述的公式,也可以得到補(bǔ)差函數(shù)為插值細(xì)分情況下的權(quán)圖。圖14為本發(fā)明中權(quán)圖的第二實(shí)施例中規(guī)則情況下的示意圖,參見(jiàn)圖14,在規(guī)則情況下,對(duì)應(yīng)于圖11,得到各頂點(diǎn)的加權(quán)系數(shù)分別為a = 67/128,b = 15/128,c = -1/16,d =1/256,e = -1/256,f = -3/128。圖15為本發(fā)明中權(quán)圖的第二實(shí)施例中半規(guī)則情況下的示意圖,圖16為本發(fā)明中 權(quán)圖的第二實(shí)施例中邊界情況下的示意圖。由于奇異點(diǎn)價(jià)不同,半規(guī)則和邊界點(diǎn)的權(quán)圖會(huì) 有多種情況的組合,這里給出的僅是其中的例子。Loop-Butterfly方法可以應(yīng)用于任意三角型網(wǎng)格,并且網(wǎng)格拓?fù)溥B接的變化與 Loop和Butterfly方法完全一致。另外,Loop-Butterfly方法也是1-4的方法。本實(shí)例通過(guò)對(duì)原始控制點(diǎn)進(jìn)行逼近細(xì)分,可以利用逼近細(xì)分的優(yōu)勢(shì)使曲面光滑, 并且,再將逼近細(xì)分后的偶點(diǎn)移回原來(lái)的位置,奇點(diǎn)隨之移動(dòng),來(lái)避免單純逼近細(xì)分造成的 體積縮小的問(wèn)題。上述對(duì)本發(fā)明的實(shí)現(xiàn)內(nèi)容進(jìn)行了描述,為了更確切的表征本發(fā)明可以滿足需要, 可以進(jìn)行下述的光滑性證明及實(shí)驗(yàn)驗(yàn)證。光滑性證明對(duì)于細(xì)分方法的光滑性,通常對(duì)相應(yīng)的細(xì)分矩陣進(jìn)行數(shù)值分析。細(xì)分矩陣定義了 模型中子網(wǎng)格V G Mk與細(xì)分后網(wǎng)格中與其拓?fù)渫瑯?gòu)的子網(wǎng)格S(V) G Mk+1之間的映射關(guān)系。 對(duì)于通過(guò)“兩點(diǎn)”方法推導(dǎo)出的細(xì)分格式,其光滑性不需要進(jìn)行分析,因?yàn)檫@ 個(gè)格式與改進(jìn)的蝶形方法完全一致,顯然可以生成C1連續(xù)的極限曲面。這里著重分析 Loop-Buttefly方法的光滑性。對(duì)于Loop-Butterfly方法,對(duì)于規(guī)則情況下,相應(yīng)得細(xì)分矩 陣為一個(gè)61X61的方陣。圖17為本發(fā)明中Loop-Butterfly方法中網(wǎng)格Mk的子圖以及和 細(xì)分后網(wǎng)格Mk+1中與其拓?fù)渫瑯?gòu)的子圖的示意圖,圖17中,細(xì)線為網(wǎng)格Mk的子圖,粗線為網(wǎng) 格Mk+1中與其拓?fù)渫瑯?gòu)的子圖。通過(guò)Matlab軟件進(jìn)行數(shù)值計(jì)算,細(xì)分矩陣最大的4個(gè)特征值為
,滿足如下條件 上面的條件(入0= 1 > AJ = | A2 > A3|)為細(xì)分曲面達(dá)到C1連續(xù)的必要 條件。細(xì)分曲面達(dá)到C1連續(xù)的充分條件是細(xì)分方法特征圖的規(guī)則性,Loop-Butterfly方法 特征圖與Loop和Butterfly方法是完全一致的,滿足此充分條件。由細(xì)分矩陣特征值的數(shù) 值分析及特征圖的規(guī)則性,可以確定Loop-Butterfly方法在規(guī)則情況下可以產(chǎn)生C1連續(xù) 的曲面。實(shí)驗(yàn)驗(yàn)證由于實(shí)例之一的兩點(diǎn)方法構(gòu)建的插值格式與經(jīng)典的改進(jìn)Butterfly方法完全一 致,無(wú)須用實(shí)驗(yàn)結(jié)果進(jìn)行驗(yàn)證,這里主要給出了另一實(shí)例Loop-Butterfly方法的實(shí)驗(yàn)結(jié)
圖18-23為L(zhǎng)oop-Butterfly方法與經(jīng)典方法的效果比較。從左到右分別為原始 網(wǎng)格、Loop細(xì)分結(jié)果、蝶形細(xì)分結(jié)果及Loop-Butterfly細(xì)分結(jié)果。由圖18和圖19明顯可以看出Loop方法的收縮問(wèn)題,蝶形方法則明顯不如Loop 生成的曲面光滑。Loop-Butterfly方法解決了 Loop方法的收縮問(wèn)題,生成的曲面比改進(jìn)蝶形方法更光滑,具有Loop方法的形狀特點(diǎn)。在圖20中,Loop細(xì)分后,網(wǎng)格的拐角信息基本都丟失了。對(duì)于此蚯蚓模型來(lái)說(shuō), 這是很重要的形狀信息。而B(niǎo)utterfly細(xì)分后,產(chǎn)生了很明顯的具有不自然波動(dòng)的怪異形 狀。而Loop-Butterfly細(xì)分后,拐角信息被完全保留,另外,不自然波動(dòng)的情況被大大的減 輕。圖21-23給出了對(duì)相對(duì)復(fù)雜的模型進(jìn)行細(xì)分后的結(jié)果對(duì)比??梢钥闯?, Loop-Butterfly方法很適合用于對(duì)3D掃描得到的模型進(jìn)行細(xì)分處理。本發(fā)明提出一種從逼近細(xì)分構(gòu)建出相應(yīng)的插值細(xì)分的方法,可以基于已有的經(jīng)典 方法構(gòu)建出新的插值細(xì)分格式,并使得新插值細(xì)分方法細(xì)分后的網(wǎng)格形狀具有逼近細(xì)分后 的特點(diǎn)。按照本發(fā)明的方法,成功構(gòu)建出兩點(diǎn)插值細(xì)分格式和Loop-Butterfly細(xì)分。其中 構(gòu)建出的兩點(diǎn)的插值細(xì)分格式與改進(jìn)的蝶形細(xì)分格式完全一致,而Loop-Butterfly細(xì)分 格式經(jīng)過(guò)光滑性分析可以生成C1連續(xù)的極限曲面。實(shí)驗(yàn)結(jié)果也驗(yàn)證了本發(fā)明推導(dǎo)出的細(xì) 分格式很好的綜合了插值和逼近方法的優(yōu)點(diǎn),可以擴(kuò)展細(xì)分方法的應(yīng)用范圍。綜上,本發(fā)明提出了一種基于補(bǔ)差方法的從逼近細(xì)分構(gòu)建插值細(xì)分的方法??梢?用于構(gòu)建保持逼近細(xì)分形狀特點(diǎn)的插值形細(xì)分格式。以Loop細(xì)分作為逼近細(xì)分,分別以兩 點(diǎn)方法和Butterfly方法作為補(bǔ)差函數(shù)進(jìn)行構(gòu)建。結(jié)果從兩點(diǎn)方法構(gòu)建出了改進(jìn)的蝶形細(xì) 分,而從Butterfly方法構(gòu)建出了新的細(xì)分Loop-Butterfly細(xì)分。經(jīng)證明Loop-Butterfly 方法在規(guī)則情況下可以產(chǎn)生C1連續(xù)的極限曲面。實(shí)驗(yàn)結(jié)果也表明,本發(fā)明的方法構(gòu)建出的 細(xì)分方法可以保持逼近細(xì)分方法的形狀特點(diǎn),同時(shí)解決了逼近細(xì)分的收縮問(wèn)題。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者 光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制, 盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依 然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修 改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
一種插值細(xì)分方法,其特征在于,包括步驟81輸入原始控制網(wǎng)格;步驟82對(duì)原始控制網(wǎng)格進(jìn)行逼近細(xì)分處理,得到新生成的奇點(diǎn)和偶點(diǎn);步驟83將偶點(diǎn)移動(dòng)回其原始位置,并根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn);步驟84將移動(dòng)后的偶點(diǎn)和奇點(diǎn)組成造型后的曲面,之后,將造型后的曲面作為下一次輸入的原始控制網(wǎng)格,循環(huán)執(zhí)行步驟82-84,直至達(dá)到預(yù)先設(shè)定的循環(huán)次數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn)包括 計(jì)算逼近細(xì)分后偶點(diǎn)與其對(duì)應(yīng)的原始控制點(diǎn)的位移差;根據(jù)定義在偶點(diǎn)位移差上的補(bǔ)差函數(shù)計(jì)算奇點(diǎn)的位移差; 用奇點(diǎn)加上其位移差即為移動(dòng)后的奇點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)原始控制網(wǎng)格進(jìn)行逼近細(xì)分處理 具體為選取Loop方法作為逼近細(xì)分的實(shí)例,對(duì)原始控制網(wǎng)格首先進(jìn)行一次逼近細(xì)分處理。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)定義在偶點(diǎn)位移差上的補(bǔ)差函 數(shù)計(jì)算奇點(diǎn)的位移差,具體為計(jì)算與該奇點(diǎn)鄰接的兩個(gè)偶點(diǎn)的位移差,將兩個(gè)偶點(diǎn)的位移差的平均值作為該奇點(diǎn)的 位移差。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述計(jì)算與該奇點(diǎn)鄰接的兩個(gè)偶點(diǎn)的位 移差,將兩個(gè)偶點(diǎn)的位移差的平均值作為該奇點(diǎn)的位移差的計(jì)算公式為Api =^(Δρ0+Δρ,),其中, 其中,Api為該奇點(diǎn)的位移差;Aptl為與該奇點(diǎn)鄰接的第一偶點(diǎn)的位移差,ρ'。為第一 偶點(diǎn)的坐標(biāo),Ptl為與第一偶點(diǎn)的原始坐標(biāo);ΔΡι為與該奇點(diǎn)鄰接的第二偶點(diǎn)的位移差,ρ'工 為第二偶點(diǎn)的坐標(biāo),P1為第二偶點(diǎn)的原始坐標(biāo)。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)定義在偶點(diǎn)位移差上的補(bǔ)差函 數(shù)計(jì)算奇點(diǎn)的位移差,具體為將各偶點(diǎn)的位移差組成差網(wǎng)格,對(duì)差網(wǎng)格進(jìn)行蝶形細(xì)分,將細(xì)分后新奇點(diǎn)的值作為奇 點(diǎn)的位移差。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述將各偶點(diǎn)的位移差組成差網(wǎng)格,對(duì)所 述差網(wǎng)格進(jìn)行蝶形細(xì)分,將細(xì)分后新奇點(diǎn)的值作為奇點(diǎn)的位移差的計(jì)算公式為在規(guī)則情況下, 其中,Δρ為該奇點(diǎn)的位移差,Δρ。、ΔΡι、Δρ2、Δ ρ3, Δρ4、Δρ5、Δρ6、Δρ7分別為該奇 點(diǎn)周圍存在的8個(gè)偶點(diǎn)的位移差;在半規(guī)則情況下, 其中,Δρ為該奇點(diǎn)的位移差;Si分別為該奇點(diǎn)周圍的規(guī)則點(diǎn)和奇異點(diǎn)的加權(quán)系數(shù); Aptl為該奇點(diǎn)周圍的規(guī)則點(diǎn)的位移差;APi,i = 1,Λ,η分別為該奇點(diǎn)周圍的奇異點(diǎn)的位移差;在邊界情況下, 其中,Δρ為該奇點(diǎn)的位移差;ΔΡ(Ι、Δ Ρι, Δ ρ2, Δρ3分別為該奇點(diǎn)周圍存在的4個(gè)偶 點(diǎn)的位移差值。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述用奇點(diǎn)加上奇點(diǎn)的位移差即為移動(dòng) 后的奇點(diǎn)的計(jì)算公式為 ;其中,Pi為移動(dòng)后的奇點(diǎn);p' i為該奇點(diǎn);Api為該奇點(diǎn)的位移差。
全文摘要
本發(fā)明公開(kāi)了一種插值細(xì)分方法。該方法包括輸入原始控制網(wǎng)格;對(duì)控制網(wǎng)格進(jìn)行逼近細(xì)分處理,得到新生成的奇點(diǎn)和偶點(diǎn);將偶點(diǎn)移動(dòng)回原始位置,并根據(jù)偶點(diǎn)的移動(dòng)規(guī)律移動(dòng)奇點(diǎn);將移動(dòng)后的偶點(diǎn)和奇點(diǎn)組成造型后的曲面。通過(guò)本發(fā)明可以構(gòu)建新的插值細(xì)分格式,新細(xì)分格式最終可以生成具有逼近細(xì)分生成曲面形狀特點(diǎn)的插值曲面。
文檔編號(hào)G06T17/20GK101853527SQ20091008108
公開(kāi)日2010年10月6日 申請(qǐng)日期2009年4月1日 優(yōu)先權(quán)日2009年4月1日
發(fā)明者孔德慧, 尹寶才, 張勇, 文雯 申請(qǐng)人:北京工業(yè)大學(xué)