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