基于逆插值Loop的網(wǎng)格簡化方法
【專利摘要】本發(fā)明公開一種基于逆插值Loop的網(wǎng)格簡化方法,包括頂點劃分、偏移量計算、更新網(wǎng)格和循環(huán)操作等步驟,本發(fā)明將插值Loop細(xì)分模式運用到逆插值Loop的網(wǎng)格簡化上,即將逼近型的Loop細(xì)分同插值型細(xì)分進(jìn)行融合;插值型的細(xì)分模式產(chǎn)生的極限曲面不會收縮,具有容易控制生成曲面外形的特點;將其逆用在簡化網(wǎng)格上將極大減小內(nèi)存占用量;相較于傳統(tǒng)Loop,擴大了細(xì)分的模板,容納更多的控制頂點,實現(xiàn)邊緣的插值點對中心點的補償,在進(jìn)行簡化時依次刪除掉網(wǎng)格中的冗余信息,最終生成由一個初始網(wǎng)格和一系列所占空間更小的偏移量所組成的漸進(jìn)網(wǎng)格。
【專利說明】
基于逆插值Loop的網(wǎng)格簡化方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及幾何體造型技術(shù)領(lǐng)域,具體設(shè)及一種基于逆插值Loop的網(wǎng)格簡化方 法。
【背景技術(shù)】
[0002] 漸進(jìn)網(wǎng)格(PMprogressive Meshes)是由Ho卵e在1996年的SIGGRAPH會上提出的 方法,用來解決大數(shù)據(jù)量的Ξ維網(wǎng)格受限于傳輸帶寬與存儲空間的問題。通常研究人員都 是采用基于二次誤差測量(QEM,qua化ic error mehics)基礎(chǔ)上的邊折疊、點分裂方法或 者基于此方法的一系列改進(jìn)方法來進(jìn)行網(wǎng)格簡化和生成多層次細(xì)節(jié)化〇D,Level of De化ils)的網(wǎng)格模型。
[0003] 近來也有許多采用細(xì)分的逆過程來簡化網(wǎng)格方法,其中羅笑南等提出了逆蝶形細(xì) 分的方法,對圖形進(jìn)行網(wǎng)格簡化并生成漸進(jìn)網(wǎng)格;馬建平等人則采用逆Loop細(xì)分進(jìn)行了網(wǎng) 格簡化操作。但他們的方法都有一些不足,例如鄭貴峰在每一層網(wǎng)格簡化時都需要對上一 層留下來的偶點進(jìn)行補償,同樣重建的過程中也需要對同一點進(jìn)行反補償,運樣操作就會 相對復(fù)雜。
[0004] 公告號為CN1975786A為的中國發(fā)明專利申請公開了 "一種基于逆Loop細(xì)分的漸進(jìn) 網(wǎng)格生成方法",采用了傳統(tǒng)的Loop方法的逆過程,雖然在簡化的時候借鑒了插值細(xì)分的處 理方法,采用Loop的邊點計算只生成邊點,但是由于傳統(tǒng)的Loop細(xì)分方法是逼近型的,生成 的曲面不經(jīng)過初始控制網(wǎng)格,運就不可避免細(xì)分后的極限曲面是收縮的。運種在保持網(wǎng)格 形狀特征上的收縮性,實用性并不是很好,增加了內(nèi)存占用量,大大影響了網(wǎng)格生成和圖形 擅染速度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題是傳統(tǒng)Loop細(xì)分方法存在細(xì)分后的極限曲面是收縮 和內(nèi)存占用量大的問題,提供一種基于逆插值Loop的網(wǎng)格簡化方法。
[0006] 為解決上述問題,本發(fā)明是通過W下技術(shù)方案實現(xiàn)的:
[0007] 基于逆插值Loop的網(wǎng)格簡化方法,包括如下步驟:
[000引步驟1、對于給定的一個網(wǎng)格模型r,將網(wǎng)格模型r的所有頂點劃分成2個集合,即 將是奇點的頂點歸入奇點集中,將是偶點的頂點歸入偶點集;
[0009]步驟2、為了 Ξ維曲面網(wǎng)格的還原與重建,在刪除網(wǎng)格模型r的奇點集中的每一個 奇點之前,通過插值Loop細(xì)分方法對該奇點在下一層網(wǎng)格模型MD-1的位置進(jìn)行預(yù)測,并保存 該奇點在網(wǎng)格模型r中的實際位置與下一層網(wǎng)格模型iTi中的預(yù)測位置的偏移量off;
[0010]步驟3、將奇點集中的奇點作為下一層網(wǎng)格模型iTi的冗余刪除,并將偶點集中的 偶點作為下一層網(wǎng)格模型MD-1的頂點保留;對網(wǎng)格MD-1重新進(jìn)行Ξ角化,形成新的拓?fù)湫畔ⅲ?構(gòu)成新的完整的網(wǎng)格模型MD-1;
[0011]步驟4、重復(fù)上述步驟1-3,直到將復(fù)雜的網(wǎng)格模型r簡化到只剩下由偶點組成的 網(wǎng)格模型M^^與此同時在簡化的過程中生成一系列的偏移量off。
[0012] 上述步驟1中,對網(wǎng)格中的頂點進(jìn)行劃分的過程具體為:
[0013] 步驟1.1、將網(wǎng)格中任意一個奇異點設(shè)置為偶點,放置于偶點集中;
[0014] 步驟1.2、將與奇異點相鄰的所有鄰接點設(shè)置為奇點,放置于奇點集中;
[0015] 步驟1.3、將步驟1.2設(shè)置的奇點視為對稱中屯、,與步驟1.1設(shè)置的偶點相對稱的對 稱點設(shè)置為偶點,放置于偶點集中;
[0016] 步驟1.4、對偶點集中的偶點依次調(diào)用步驟1.1至步驟1.3劃分規(guī)則進(jìn)行劃分,直到 網(wǎng)格中的所有頂點全部劃分完畢。
[0017] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下特點:
[0018] 1、相較于傳統(tǒng)Loop,擴大了細(xì)分的模板,容納更多的控制頂點,實現(xiàn)邊緣的插值點 對中屯、點的補償,在進(jìn)行簡化時依次刪除掉網(wǎng)格中的冗余信息,最終生成由一個初始網(wǎng)格 和一系列所占空間更小的偏移量所組成的漸進(jìn)網(wǎng)格。
[0019] 2、將插值Loop細(xì)分模式運用到逆插值Loop的網(wǎng)格簡化上,即將逼近型的Loop細(xì)分 同插值型細(xì)分進(jìn)行融合;插值型的細(xì)分模式產(chǎn)生的極限曲面不會收縮,具有容易控制生成 曲面外形的特點;將其逆用在簡化網(wǎng)格上將極大減小內(nèi)存占用量;
[0020] 3、運用插值型細(xì)分模式對網(wǎng)格進(jìn)行逆插值型Loop簡化處理;結(jié)合插值型Loop的特 點,在進(jìn)行逆插值Loop網(wǎng)格簡化的過程中不必對上一層網(wǎng)格中偶點進(jìn)行補償計算,速度相 對更快,在實際應(yīng)用中更為有效;
[0021] 4、適用于具有細(xì)分連通性的Ξ角形網(wǎng)格,對于任意網(wǎng)格需進(jìn)行預(yù)處理使其成為具 有細(xì)分連通性的Ξ角形網(wǎng)格。
【附圖說明】
[0022] 圖1為基于逆插值Loop的網(wǎng)格簡化方法流程圖;
[0023] 圖2為頂點分類示意圖;
[0024] 圖3為插值Loop細(xì)分E頂點的掩膜;其中(a)表示正則點,(b)表示奇異點,(C)表示 邊界點;
[0025] 圖4為奇點偏移計算過程;圖(a)表示網(wǎng)格簡化前原始網(wǎng)格圖(b)表示簡化之后 的網(wǎng)格M^i,圖(C)表示網(wǎng)格MW通過插值Loop細(xì)分生成新的網(wǎng)格
[0026] 圖5為Loop和插值Loop偏移計算示意圖。
【具體實施方式】
[0027] 下面結(jié)合一個具體實施例和附圖對本發(fā)明進(jìn)一步詳細(xì)說明。
[0028] 在進(jìn)行詳細(xì)說明之前,先對一些名詞進(jìn)行如下說明:
[0029] 正則點:在Ξ角網(wǎng)格內(nèi)部頂點中,與六條邊相連的點。
[0030] 奇異點:在Ξ角網(wǎng)格內(nèi)部頂點中,非正則點的點。
[0031] 正則網(wǎng)格:所有頂點均為正則點的網(wǎng)格。
[0032] 半正則網(wǎng)格:存在奇異點的網(wǎng)格。
[0033] 奇點:在網(wǎng)格簡化過程中需要刪除的點,在半正則網(wǎng)格中為正則點。
[0034] 偶點:在網(wǎng)格簡化過程中要保留下來的點,在半正則網(wǎng)格中為奇異點。
[0035] 假設(shè)一個Ξ角網(wǎng)格M=(P,K),其中P表示該Ξ角網(wǎng)格中頂點坐標(biāo)集合,Pi=(xi,yi, Zi),(l《i《n),K表示該Ξ角網(wǎng)格中的拓?fù)湫畔⒓?。將一個半正則的原始網(wǎng)格r=(pn, Κη)經(jīng)過數(shù)次網(wǎng)格簡化之后,構(gòu)成新的網(wǎng)格Mj = (Pj,K j),(0《j《η),其中護(hù))表示基 網(wǎng)格。
[0036] -種基于逆插值Loop的網(wǎng)格簡化方法,如圖1所示,包括如下步驟:
[0037] 步驟1、頂點劃分算法:對于給定的一個Ξ角網(wǎng)格將所有的頂點劃分成兩個集 合,奇點集Oj和偶點集Ej(0《j《n)。
[0038] 由于封閉的Ξ維網(wǎng)格都至少存在一個奇異點,而奇異點通常表示曲面的尖銳特征 性,因此奇異點是需要保留下來的關(guān)鍵點,而其他點作為冗余信息刪除。因此首先選擇網(wǎng)格 中的一個奇異點V設(shè)置為偶點,將它劃分至偶點集Ej中,與它鄰接的所有頂點Va設(shè)置為奇 點,都劃分至奇點集化中。然后找到V點關(guān)于Va的對稱點Vs,將Vs也劃分至偶點集Ej中。設(shè)置 偶點是利用遞歸調(diào)用,依次運樣劃分下去,直到網(wǎng)格中所有頂點都劃分完畢。頂點關(guān)系如圖 2所示,奇異點V為實屯、方塊,鄰接點Va為空屯、圓,對稱點Vs為相應(yīng)圖中與奇異點V關(guān)于鄰接 點對稱的實屯、方塊。具體劃分算法如下:
[0039] 找到任意奇異點V;
[0040] {如果V包含在偶點集&中,返回成功;
[0041] 如果V包含在奇點集化中,返回失敗;
[0042] 將V歸并到偶點集&中,偶點集頂點數(shù)加一;
[0043] 遍歷與V相鄰的所有頂點化;
[0044] {如果化是奇異點或者化已經(jīng)包含在偶點集&中,返回失敗;
[0045] 否則將頂點化歸并到奇點集化中;
[0046] 找到與V點關(guān)于化的對稱點Vs ;
[0047] 遞歸調(diào)用本算法對Vs點進(jìn)行劃分并返回;
[004引}
[0049]返回成功
[(K)加]}
[0051] 遞歸調(diào)用頂點劃分算法,直到將網(wǎng)格中的所有頂點均劃分到奇點集和偶點集中, 其中半正則Ξ角形網(wǎng)格可順利進(jìn)行頂點劃分的前提條件,亦即可簡化的次數(shù)由W下公式?jīng)Q 定:
[0052] Dis 化 nce(Vi,Vj) = 2k,l《i,j《s,k = l,2,3...
[0053] 其中^,¥^表示網(wǎng)格中任意兩個奇異點,設(shè)3為網(wǎng)格中包含奇異點的個數(shù),013*曰11〇6 (vi,yj)表示運兩個奇異點間相連接邊的個數(shù),k-1的最小值即為該網(wǎng)格可進(jìn)行簡化的次數(shù), 因此由1"^1<^最多可簡化111111(1〇次。若^角網(wǎng)格1"不滿足該公式,則需要對網(wǎng)格進(jìn)行預(yù)處 理,重新網(wǎng)格化使其滿足該公式。
[0054] 步驟2、偏移量計算:通過步驟1將網(wǎng)格中的頂點劃分為奇點集化和偶點集Ej后,為 保持Ξ維網(wǎng)格在傳輸前后,即網(wǎng)格的簡化和重建過程中能夠保持相對不變性,將表示幾何 特征的偶點集中所有頂點保留下來,將奇點集中所有的奇點作為冗余信息刪除。在刪除原 網(wǎng)格1^中奇點集中某個奇點^的實際位置前,通過插值1〇〇口細(xì)分方法對下一層網(wǎng)格1^的 奇點V"位置進(jìn)行預(yù)測計算,將奇點y/的實際位置與預(yù)測計算所得預(yù)測奇點V"位置的差值作 為偏移量off保存下來。
[0055]如圖4所示,(a)表示網(wǎng)格簡化前原始網(wǎng)格M^(b)表示簡化之后的網(wǎng)格MW,(c)表 示網(wǎng)格MW通過插值Loop細(xì)分生成新的網(wǎng)格從網(wǎng)格Μ呼奇化到網(wǎng)格Μ^,刪除了奇點r,然 后對于1^進(jìn)行插值細(xì)分得到^,通過((3)可^看到在網(wǎng)格1^中,每一個新生成的頂點¥",都 對應(yīng)于原網(wǎng)格Mj中的一個奇點y/,即有如下關(guān)系式:
[0化6] 〇ff = v'-V"
[0057]推廣到一般情況下可W有:
[0化引
[0059] 其中〇/隸示網(wǎng)格Μ坤奇點集中的第i個奇點,P化J)表示網(wǎng)格Μ哺過插值Loop計算 得到的預(yù)測奇點,〇///Li表示網(wǎng)格mW中即將刪除的奇點的實際位置與通過插值Loop計算 得到的預(yù)測奇點位置的偏移量。
[0060] 其中插值Loop細(xì)分方法為:首先,擴大Loop細(xì)分的掩膜,容納更多的控制頂點,實 現(xiàn)邊緣插值點對中屯、點的補償;然后,借鑒改進(jìn)的蝶形細(xì)分對奇異點的處理方法,修改插值 Loop細(xì)分的奇異點規(guī)則,從而解決奇異點凹陷問題。圖3為插值Loop細(xì)分E頂點的掩膜;其中 (a)表示正則點,(b)表示奇異點,(C)表示邊界點。
[006。 已假設(shè)if為控制頂點,巧日為E頂點在新插值Loop細(xì)分k+1和k 次迭代后的位置。為V頂點在傳統(tǒng)細(xì)分中k次迭代后的位置。為化 傳統(tǒng)Loop細(xì)分中的k次迭代后的位移。APf是E頂點的位置與V頂點的位巧 的差分。
[0062]
[0063]當(dāng)if為正則點時,新的插值Loop細(xì)分的時頁點的掩膜計算公式如下:
[0071] 當(dāng) i = 3時 S〇 二是,& 二 & =-吉
[0072] 此時對奇異點處理方法與改進(jìn)的蝶形細(xì)分的奇異點處理規(guī)則相同,運里i表示頂 點的度。
[0073] 基于逆插值Loop網(wǎng)格簡化的步驟是在現(xiàn)有插值Loop網(wǎng)格細(xì)分的基礎(chǔ)上進(jìn)行了對 應(yīng)的改進(jìn)。由于網(wǎng)格簡化的目的在于減少數(shù)據(jù)量而非使簡化后的網(wǎng)格更光順,因此可W刪 除偶點補償?shù)牟僮?,減少計算時間。同時采用本發(fā)明逆插值Loop和傳統(tǒng)逆Loop的最主要區(qū) 別在于偏移量的計算方法上。
[0074] 圖5為Loop和插值Loop偏移計算示意圖。圖5中r表示原網(wǎng)格Mj中的某一個奇點的 實際位置,V" >表示網(wǎng)格mW通過插值Loop細(xì)分得到的奇點的預(yù)測位置,V"/則表示網(wǎng)格mW 通過Loop細(xì)分得到的奇點的預(yù)測位置。由此可得:
[0075] 通過Loop計算得到的偏移量為:
[0076] 〇ffi〇〇p = V'-V"'
[0077] 通過插值Loop得到的偏移量為:
[007引 0 訊L00p = V'-V"
[0079] 步驟3、更新網(wǎng)格:通過上面兩個步驟,奇點集中的點作為冗余信息刪除之后,對剩 下的偶點集中的點構(gòu)成網(wǎng)格MW中的頂點信息PW,對網(wǎng)格MW重新進(jìn)行Ξ角化,形成新的拓 撲信息護(hù)1,構(gòu)成新的完整的網(wǎng)格模型MW(pW,Kfi)。如圖4所示從(a)簡化到化)。
[0080] 步驟4、循環(huán)操作:重復(fù)上述Ξ個步驟,可W將復(fù)雜的初始網(wǎng)格模型r簡化到簡單 的網(wǎng)格模型1*^。此時就可^形成多分辨率的漸進(jìn)網(wǎng)格形式,即從精網(wǎng)格1"到粗糖的網(wǎng)格1*^: [0081 ] 一Mn-1 一Mn-2 一…一
[0082] 在每一次簡化過程中,都會產(chǎn)生一層偏移量信息,所^當(dāng)從1叩奇化到1<^后,會生成 的偏移量信息共有η層,如表1所示:
[0083] 表 1
[0084]
[0085] 。
【主權(quán)項】
1. 基于逆插值Loop的網(wǎng)格簡化方法,其特征是,包括如下步驟: 步驟1、對于給定的一個網(wǎng)格模型Mn,將網(wǎng)格模型Mn的所有頂點劃分成2個集合,即將是 奇點的頂點歸入奇點集中,將是偶點的頂點歸入偶點集; 步驟2、為了三維曲面網(wǎng)格的還原與重建,在刪除網(wǎng)格模型Mn的奇點集中的每一個奇點 之前,通過插值Loop細(xì)分方法對該奇點在下一層網(wǎng)格模型IT1的位置進(jìn)行預(yù)測,并保存該奇 點在網(wǎng)格模型M n中的實際位置與下一層網(wǎng)格模型IT1中的預(yù)測位置的偏移量off; 步驟3、將奇點集中的奇點作為下一層網(wǎng)格模型IT1的冗余刪除,并將偶點集中的偶點 作為下一層網(wǎng)格模型iT1的頂點保留;對網(wǎng)格IT1重新進(jìn)行三角化,形成新的拓?fù)湫畔?,?gòu)成 新的完整的網(wǎng)格模型iT 1; 步驟4、重復(fù)上述步驟1-3,直到將復(fù)雜的網(wǎng)格模型,簡化到只剩下由偶點組成的網(wǎng)格模 型#,同時在簡化的過程中生成一系列的偏移量off。2. 根據(jù)權(quán)利要求1所述的一種基于逆插值Loop的網(wǎng)格簡化方法,其特征是,步驟1中,對 網(wǎng)格中的頂點進(jìn)行劃分的過程具體為: 步驟1.1、將網(wǎng)格中任意一個奇異點設(shè)置為偶點,放置于偶點集中; 步驟1.2、將與奇異點相鄰的所有鄰接點設(shè)置為奇點,放置于奇點集中; 步驟1.3、將步驟1.2設(shè)置的奇點視為對稱中心,與步驟1.1設(shè)置的偶點相對稱的對稱點 設(shè)置為偶點,放置于偶點集中; 步驟1.4、對偶點集中的偶點依次調(diào)用步驟1.1至步驟1.3劃分規(guī)則進(jìn)行劃分,直到網(wǎng)格 中的所有頂點全部劃分完畢。
【文檔編號】G06T17/20GK106067192SQ201610372689
【公開日】2016年11月2日
【申請日】2016年5月30日 公開號201610372689.X, CN 106067192 A, CN 106067192A, CN 201610372689, CN-A-106067192, CN106067192 A, CN106067192A, CN201610372689, CN201610372689.X
【發(fā)明人】史卓, 安亞磊, 李映輝, 馬洋洋, 玉珂
【申請人】桂林電子科技大學(xué)