本發(fā)明涉及虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,特別是涉及一種新的漸進(jìn)網(wǎng)格生成方法。
背景技術(shù):
網(wǎng)格簡化的目的是把一個(gè)復(fù)雜多邊形表示的模型用一個(gè)近似的模型表示,近似模型基本保持了原模型的可視特點(diǎn),但頂點(diǎn)數(shù)目少于原網(wǎng)格的頂點(diǎn)數(shù)目?;趲缀卧貏h除的模型簡化算法即通過一定的誤差判定,刪除那些對模型幾何形狀影響不大的幾何“圖元”(頂點(diǎn)、邊或三角形),達(dá)到模型簡化的目的,得到在不同精度上逼近原復(fù)雜模型的近似模型。為了保證拓?fù)涮匦裕惴ū仨殞缀卧貏h除后所遺留的空洞、進(jìn)行復(fù)雜的三角化過程。
1992年,Schroeder首次提出以頂點(diǎn)刪除這種基于幾何元素刪除的模型簡化方法。該方法首先根據(jù)模型局部的幾何拓?fù)涮匦?,將頂點(diǎn)劃分為簡單頂點(diǎn)、復(fù)雜頂點(diǎn)、邊界頂點(diǎn)以及位于特征邊上的內(nèi)部點(diǎn)和尖角點(diǎn)。然后根據(jù)各類頂點(diǎn)刪除所導(dǎo)致的誤差決定該頂點(diǎn)的刪除。如誤差允許,則刪除該頂點(diǎn)并對刪除該頂點(diǎn)所遺留下的空洞進(jìn)行三角化。頂點(diǎn)刪除法算法簡單,執(zhí)行效率高。Schroeder將該技術(shù)應(yīng)用于醫(yī)學(xué)CT數(shù)據(jù)中抽取的等距面模型及地表模型的簡化,大量消減了原模型中的三角形數(shù)目,同時(shí)算法保留了原模型的幾何特征。
1993年,Hoppe提出以邊操作實(shí)現(xiàn)模型簡化的LoD模型自動(dòng)生成算法[Hoppe93]。該方法最大的特點(diǎn)即通過對邊的各種操作(邊蛻化為點(diǎn)、邊對換、頂點(diǎn)分裂)來求取能量意義上的原模型的最優(yōu)逼近模型。該方法以邊蛻化為一新的頂點(diǎn),以被蛻化的邊的兩端點(diǎn)對應(yīng)新頂點(diǎn),由原端點(diǎn)的連接關(guān)系就可得到簡化區(qū)域的保持原連接關(guān)系的三角面模型,避免簡化操作后的三角化問題。Hoppe方法首次提出了以頂點(diǎn)合并,即邊的頂點(diǎn)合并為一個(gè)新頂點(diǎn)這一復(fù)雜模型簡化方式,避免模型簡化后復(fù)雜的三角化過程,為任意網(wǎng)格模型的層次細(xì)節(jié)模型的實(shí)時(shí)生成的提出作了良好的先期工作。
1994年,Hamann提出了基于面刪除的模型簡化方法。該方法以三角面各頂點(diǎn)的主曲率判定模型中各三角面所處區(qū)域的平坦程度,并由此決定各三角面對原模型的重要程度。算法以各三角面的重要性的大小決定各三角面刪除的先后。為避免對三角面刪除所遺留的空洞進(jìn)行復(fù)雜的三角化過程,算法采取了類似于邊退化為頂點(diǎn)的方法來避免局部區(qū)域的復(fù)雜三角化過程。算法將所刪除的三角面的頂點(diǎn)合并為一新的頂點(diǎn),由此新頂點(diǎn)對應(yīng)所刪除三角面的三個(gè)頂點(diǎn),按原頂點(diǎn)的連接關(guān)系即生成該局部區(qū)域的三角化模型。
此后,人們又提出了基于面合并的模型簡化方法。雖然這些方法能有效地簡化各種復(fù)雜模型,但所有這些方法由于必須對原模型大量數(shù)據(jù)進(jìn)行逐個(gè)的判定且必須對簡化后所遺留的空洞進(jìn)行復(fù)雜的三角化過程,使得算法無法達(dá)到實(shí)時(shí),盡管基于邊蛻化的模型簡化方法以及基于面刪除的模型簡化方法在避免復(fù)雜的三角化過程方面作了一定的改進(jìn)。因而算法不得不預(yù)先產(chǎn)生原模型間斷的簡化模型空間,即預(yù)先生成滿足不同幾何精度的多個(gè)簡化模型。這不僅帶來了存儲(chǔ)空間的耗費(fèi),而且由于繪制模型的不同必然帶來圖形畫面的跳躍。
為避免圖形畫面的跳躍,幾何模型的復(fù)雜度在相續(xù)幀之間應(yīng)該是平滑過度的。即被控制的模型的三角面的數(shù)目應(yīng)隨視點(diǎn)的連續(xù)變化而連續(xù)的變化。視點(diǎn)的小變化不會(huì)也不應(yīng)導(dǎo)致模型的大變化。這個(gè)性質(zhì)將會(huì)避免動(dòng)態(tài)顯示中出現(xiàn)圖形畫面的跳躍。
1995年,Hoppe在原有的邊操作算法基礎(chǔ)上提出了累進(jìn)網(wǎng)格的概念,首次較好地解決了模型簡化方法在實(shí)際應(yīng)用中所遇到的問題。該算法根據(jù)邊蛻化簡化操作的可逆性及邊蛻化方法良好的局部拓?fù)渚S護(hù)性,將三維模型中每條邊按照它們被刪除后導(dǎo)致的幾何誤差大小排列,從小到大進(jìn)行刪除得到一個(gè)可逆的原模型的累邊網(wǎng)格表示。而利用頂點(diǎn)分裂這一與模型簡化操作─頂點(diǎn)合并相逆的過程來恢復(fù)模型簡化所刪除的信息。為了得到模型細(xì)節(jié)的刪除信息,算法在模型簡化的預(yù)計(jì)算中記錄下邊蛻化為新頂點(diǎn)這一簡化過程中原頂點(diǎn)與新頂點(diǎn)的對應(yīng)關(guān)系,并由預(yù)計(jì)算中記錄下的每一簡化過程得到一個(gè)由原模型的基本網(wǎng)格和一系列的簡化信息組成的漸進(jìn)網(wǎng)格表示模式。在實(shí)時(shí)繪制時(shí),通過跟蹤記錄下的邊蛻化為新頂點(diǎn)的對應(yīng)關(guān)系,算法可以根據(jù)這一跟蹤線索由基本網(wǎng)格模型逐步恢復(fù)所刪除的模型細(xì)節(jié),實(shí)時(shí)得到原模型連續(xù)精度的簡化模型。該算法以邊蛻化所導(dǎo)致的模型幾何誤差的大小指導(dǎo)模型簡化的順序,并由此生成幾何誤差由小到大的漸進(jìn)網(wǎng)格模型。
此后,Isler基于以上算法特點(diǎn),根據(jù)面刪除以及邊蛻化簡化算法的特點(diǎn),提出了一種實(shí)時(shí)的多分辯率方法。該方法首先以圍繞各頂點(diǎn)的三角面之間的夾角大小判定各頂點(diǎn)所處區(qū)域的平坦程度,并由此決定各三角面的視覺重要度。該方法根據(jù)三角面各頂點(diǎn)所處區(qū)域的平坦度決定三角面蛻化的方式,即是否此三角面蛻化為一新頂點(diǎn)或此三角面的一邊蛻化為一新頂點(diǎn)。為減少計(jì)算,算法有三角面上的一頂點(diǎn)作為新頂點(diǎn),從而避免了三角化過程。當(dāng)然,由于復(fù)雜模型龐大的數(shù)據(jù)量,如果算法必須對各三角面作逐一的判定,算法是無法達(dá)到實(shí)時(shí)的。為避免對復(fù)雜模型的各個(gè)三角面逐一判定,算法采用了靜態(tài)簡化方法預(yù)先產(chǎn)生幾個(gè)關(guān)鍵的簡化模型,并對其中的三角面按照它們的視覺重要度進(jìn)行排序。在實(shí)時(shí)繪制過程中,算法選擇一個(gè)最少的但又比所需要的分辨率高的近似模型,按重要度從小到大地刪除三角面直到剛滿足當(dāng)前精度為止。算法建立三角面刪除隊(duì)列,記錄三角面在實(shí)時(shí)計(jì)算中最近被刪除的信息,以此加速實(shí)時(shí)模型的簡化,實(shí)時(shí)得到原模型連續(xù)精度的網(wǎng)格模型。
根據(jù)以上算法的特點(diǎn),我們以頂點(diǎn)刪除算法為基礎(chǔ),提出一種漸進(jìn)網(wǎng)格模型的生成算法。算法以頂點(diǎn)刪除簡化方法實(shí)現(xiàn)原模型的簡化。為避免復(fù)雜的三角化過程,算法選擇與被刪除頂點(diǎn)相關(guān)的一頂點(diǎn)作為起始點(diǎn)對遺留的空洞進(jìn)行局部三角剖分。根據(jù)不同頂點(diǎn)分類,算法計(jì)算相應(yīng)頂點(diǎn)的重要度,由小到大順序刪除各頂點(diǎn),并以一定的結(jié)構(gòu)記錄下模型簡化的過程,得到一種新的漸進(jìn)網(wǎng)格模型的表示。該種漸進(jìn)網(wǎng)格模型的表示方法可以根據(jù)當(dāng)前視點(diǎn)參數(shù)實(shí)時(shí)產(chǎn)生當(dāng)前視點(diǎn)的適當(dāng)簡化模型,克服了Isler算法必須預(yù)先產(chǎn)生多個(gè)簡化模型的不足。為保證所得到的三角化模型保持原模型的拓?fù)涮匦?,算法進(jìn)行相應(yīng)的半空間檢測。
借助高精度的三維掃描儀和CT掃描儀,可以獲取真實(shí)物體的大量數(shù)據(jù),為快速三維建模提供了一種高效的手段。這些模型通常有大量的數(shù)據(jù)組成。雖然今天的計(jì)算機(jī)處理速度在不斷提高,存儲(chǔ)空間也在不斷擴(kuò)大,但仍遠(yuǎn)遠(yuǎn)趕不上模型復(fù)雜度的增長,如此龐大的模型存儲(chǔ)、顯示、傳輸上都面臨巨大的困難。特別是在虛擬現(xiàn)實(shí)中,虛擬環(huán)境必須實(shí)時(shí)生成以使能進(jìn)行交互式的控制、觀察和操縱;否則將嚴(yán)重地影響虛擬現(xiàn)實(shí)的“現(xiàn)實(shí)感”。為此人們采用了各種技術(shù)來解決這個(gè)矛盾。其中,細(xì)節(jié)層次模型技術(shù)就是其中一種非常有效的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種新的漸進(jìn)網(wǎng)格生成方法。
本發(fā)明的目的可以通過以下技術(shù)方案實(shí)現(xiàn):
一種新的漸進(jìn)網(wǎng)格生成方法,包括以下步驟:
步驟S1,獲取VR模型,對VR模型初始化,計(jì)算模型上每個(gè)頂點(diǎn)的重要度,并根據(jù)重要度的大小建立所有頂點(diǎn)從小到大進(jìn)行排序的頂點(diǎn)序列;
步驟S2,從步驟S1建立的頂點(diǎn)隊(duì)列中選取一個(gè)具有最小重要度的頂點(diǎn);
步驟S3,檢查該頂點(diǎn)刪除的合法性,如果合法,轉(zhuǎn)步驟S4;否則轉(zhuǎn)步驟S5;
步驟S4,從該頂點(diǎn)相關(guān)的頂點(diǎn)中選取一個(gè)頂點(diǎn)作為起始點(diǎn)對該頂點(diǎn)刪除所遺留的空洞進(jìn)行三角化,如果找不到一個(gè)頂點(diǎn)可以對所遺留的空洞進(jìn)行三角化,則轉(zhuǎn)步驟S5;否則,再計(jì)算所有相關(guān)頂點(diǎn)的重要度,重新對所余頂點(diǎn)進(jìn)行排序,同時(shí)算法將相應(yīng)的簡化過程和刪除的三角形填入簡化隊(duì)列LMerge和三角形隊(duì)列LTri中,轉(zhuǎn)步驟S6;
步驟S5,算法暫時(shí)不對該頂點(diǎn)進(jìn)行處理,選擇其后的頂點(diǎn),轉(zhuǎn)步驟S3;
步驟S6,返回步驟S2直至模型中只余最基本的三角形,將其放在三角形隊(duì)列中,結(jié)束算法。
本發(fā)明的有益效果:
本發(fā)明所提供的一種新的漸進(jìn)網(wǎng)格生成方法,本發(fā)明記錄下整個(gè)模型簡化過程中頂點(diǎn)刪除的信息,并利用頂點(diǎn)刪除與模型面片個(gè)數(shù)的對應(yīng)關(guān)系,建立起漸進(jìn)網(wǎng)格的表示形式,本發(fā)明使用于任意三角網(wǎng)格表示的三維模型,其最要的特點(diǎn)是可以根據(jù)當(dāng)前視點(diǎn)參數(shù)產(chǎn)生連續(xù)的多分辨率近似模型,使得被繪制的三角網(wǎng)格模型的面片數(shù)目隨視點(diǎn)的位置改變而產(chǎn)生連續(xù)的變化。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1是本發(fā)明的工作示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種新的漸進(jìn)網(wǎng)格生成方法。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明提供了一種新的漸進(jìn)網(wǎng)格生成方法,該方法包括如下步驟:
步驟S1:獲取VR模型,對VR模型初始化,計(jì)算模型上每個(gè)頂點(diǎn)的重要度,并根據(jù)重要度的大小建立所有頂點(diǎn)從小到大進(jìn)行排序的頂點(diǎn)序列;
步驟S2:從步驟S1建立的頂點(diǎn)隊(duì)列中選取一個(gè)具有最小重要度的頂點(diǎn);
步驟S3:檢查該頂點(diǎn)刪除的合法性,如果合法,轉(zhuǎn)步驟S4;否則轉(zhuǎn)步驟S5;
步驟S4:從該頂點(diǎn)相關(guān)的頂點(diǎn)中選取一個(gè)頂點(diǎn)作為起始點(diǎn)對該頂點(diǎn)刪除所遺留的空洞進(jìn)行三角化,如果找不到一個(gè)頂點(diǎn)可以對所遺留的空洞進(jìn)行三角化,則轉(zhuǎn)步驟S5;否則,再計(jì)算所有相關(guān)頂點(diǎn)的重要度,重新對所余頂點(diǎn)進(jìn)行排序,同時(shí)算法將相應(yīng)的簡化過程和刪除的三角形填入簡化隊(duì)列LMerge和三角形隊(duì)列LTri中,轉(zhuǎn)步驟S6;
步驟S5:算法暫時(shí)不對該頂點(diǎn)進(jìn)行處理,選擇其后的頂點(diǎn),轉(zhuǎn)步驟S3;
步驟S6:返回步驟S2直至模型中只余最基本的三角形,將其放在三角形隊(duì)列中,結(jié)束算法。
本發(fā)明所提供的一種新的漸進(jìn)網(wǎng)格生成方法,本發(fā)明記錄下整個(gè)模型簡化過程中頂點(diǎn)刪除的信息,并利用頂點(diǎn)刪除與模型面片個(gè)數(shù)的對應(yīng)關(guān)系,建立起漸進(jìn)網(wǎng)格的表示形式,本發(fā)明使用于任意三角網(wǎng)格表示的三維模型,其最要的特點(diǎn)是可以根據(jù)當(dāng)前視點(diǎn)參數(shù)產(chǎn)生連續(xù)的多分辨率近似模型,使得被繪制的三角網(wǎng)格模型的面片數(shù)目隨視點(diǎn)的位置改變而產(chǎn)生連續(xù)的變化。
以上內(nèi)容僅僅是對本發(fā)明結(jié)構(gòu)所作的舉例和說明,所屬本技術(shù)領(lǐng)域的技術(shù)人員對所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,只要不偏離發(fā)明的結(jié)構(gòu)或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。