專利名稱:一種大規(guī)模虛擬動態(tài)場景簡化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,尤其涉及一種大規(guī)模虛擬動態(tài)場景簡化方法。
背景技術(shù):
大規(guī)模群體動畫一直是虛擬現(xiàn)實(shí)技術(shù)研究的熱點(diǎn)之一。隨著計(jì)算機(jī)圖形學(xué)的發(fā) 展,建模技術(shù)已經(jīng)越來越成熟,模型也越來越精細(xì)。而群體模擬中大量差異性的模型使用, 使得渲染速度和仿真的逼真性成為群體模擬的關(guān)鍵性問題。對于這個問題,靜態(tài)場景的簡 化技術(shù)已經(jīng)有很多很成熟的方法。 大規(guī)模動態(tài)群體場景的顯示主要是由場景的特性來決定的,包括個體的獨(dú)立性、 運(yùn)動性、場景的規(guī)模、逼真度、實(shí)時性等要求。從不同的性能要求也產(chǎn)生了各種不同的顯示 方法?,F(xiàn)有的大規(guī)模場景的顯示技術(shù)主要可以分為以下三類基于圖像的顯示方法、基于網(wǎng) 格簡化的LOD(Level of Detail)方法和基于采樣點(diǎn)的多分辨率顯示方法。
隨著三維掃描技術(shù)的進(jìn)步,利用采樣點(diǎn)來表征復(fù)雜物體表面并進(jìn)行交互繪制已成 為計(jì)算機(jī)圖形學(xué)發(fā)展的一個重要方向。點(diǎn)繪制方法采用離散化且與視點(diǎn)無關(guān)的點(diǎn)集來表征 物體表面,這些點(diǎn)不僅記錄著物體表面的幾何信息(位置、法向量),而且還記錄著如顏色、 材質(zhì)等其它信息。與傳統(tǒng)的三角形面片繪制方法相比,點(diǎn)繪制方法不包含點(diǎn)與點(diǎn)之間的連 接關(guān)系,繪制時不需要維護(hù)模型的拓?fù)湟恢滦?,便于重取樣,可以建立靈活的層次結(jié)構(gòu)來實(shí) 現(xiàn)多分辨率繪制。由于大規(guī)模動態(tài)場景的復(fù)雜性,目前基于點(diǎn)采樣模型的繪制速度和實(shí)現(xiàn) 效果還不甚理想。
發(fā)明內(nèi)容
為了提高大規(guī)模群體動畫的渲染速度和渲染效果,本發(fā)明提供了一種大規(guī)模虛擬
動態(tài)場景簡化方法。本發(fā)明采用固定網(wǎng)格采樣并去除采樣點(diǎn)冗余,減少信息存儲量,提高了
預(yù)處理速度,采用類X文件而非采用關(guān)鍵幀技術(shù),簡化了群體動畫的復(fù)雜性,同時根據(jù)不同
的L0D級別建立不同的類X文件,進(jìn)行群體渲染,提高渲染速度和渲染效果。 本發(fā)明一種大規(guī)模虛擬動態(tài)場景簡化方法,該方法包括步驟 步驟l,傳統(tǒng)網(wǎng)格模型輸入。 步驟2,計(jì)算網(wǎng)格模型的原始包圍盒,根據(jù)原始包圍盒建立新的正方體包圍盒。
步驟3,根據(jù)新的正方體包圍盒建立固定網(wǎng)格,保留基于坐標(biāo)軸XYZ三個方向的射 線列表。 步驟4,對輸入模型根據(jù)射線列表中的所有射線和物體表面的交點(diǎn),求得物體表面 的點(diǎn)采樣。 步驟5,過度采樣點(diǎn)去冗余首先設(shè)置充分采樣點(diǎn)的采樣最大距離為R,再對每個 步驟4中求得的采樣點(diǎn),進(jìn)行包圍球計(jì)算,球心為采樣點(diǎn)本身,半徑為R/2,最后刪除包圍球 中的其他采樣點(diǎn),只保留其中一個采樣點(diǎn)。 步驟6,判斷可保留三角形面片,若三角形面片中包含的采樣點(diǎn)數(shù)大于確定的值,則保留當(dāng)前三角形面片于三角形列表中。 步驟7,判斷可保留采樣點(diǎn),若三角形列表中三角形索引和采樣點(diǎn)的標(biāo)識相同,則
刪除對應(yīng)的采樣點(diǎn)列表中的采樣點(diǎn),而將其余的采樣點(diǎn)保留在采樣點(diǎn)列表中。 步驟8,用采樣點(diǎn)列表和三角形列表的信息替換原始模型X文件中的頂點(diǎn)信息和
面的信息,生成類X文件,包括以下操作 步驟8. 1 ,讀取原始模型信息; 步驟8. 2,從頂點(diǎn)信息中分離出各個骨骼的頂點(diǎn)緩沖區(qū)和面索引緩沖區(qū);
步驟8. 3,判斷各個采樣點(diǎn)所屬的骨骼區(qū)域; 步驟8.4,用采樣點(diǎn)替換原始模型骨骼的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū);
步驟8. 5,根據(jù)面的索引判斷三角形所屬的骨骼區(qū)域; 步驟8.6,用三角形頂點(diǎn)信息替換原始模型中的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū);
步驟8. 7,綁定骨骼動畫控制信息,生成類X文件,采樣點(diǎn)和三角形分別生成兩個 文件。 步驟9,根據(jù)不同的L0D級別建立不同的類X文件。 步驟IO,根據(jù)不同的距離選用不同的L0D級別模型進(jìn)行群體渲染。 本發(fā)明的有益效果是對不同的LOD級別分別進(jìn)行數(shù)據(jù)存儲,使用了比空間八叉
樹更為簡化的數(shù)據(jù)結(jié)構(gòu),節(jié)省了存儲空間和數(shù)據(jù)讀取的時間,可以加快預(yù)處理和繪制的時
間;使用固定網(wǎng)格進(jìn)行采樣,可以更好更快的控制采樣點(diǎn)的密度,同時可以加快采樣的速
度,不需要使用多重采樣,簡化了模型表面的點(diǎn)采樣過程,可以大大提高預(yù)處理速度;使用
類X文件,而不使用基于關(guān)鍵幀的采樣,去掉了采樣點(diǎn)基于時間的前后聯(lián)系,簡化了關(guān)鍵幀
之間采樣點(diǎn)的對應(yīng)設(shè)置過程,降低了動畫驅(qū)動的復(fù)雜度,而且使用不同X文件L0D級別的技
術(shù)已經(jīng)相當(dāng)成熟,渲染速度比使用關(guān)鍵幀的技術(shù)更快。
圖1為本發(fā)明一種大規(guī)模虛擬動態(tài)場景簡化方法的流程圖; 圖2為本發(fā)明中模型的新包圍盒的建立和固定網(wǎng)格的劃分示意圖; 圖3為本發(fā)明中平面模型的基于某個密度的固定網(wǎng)格采樣示意圖; 圖4為本發(fā)明中包圍球中有兩個采樣點(diǎn)去冗余的規(guī)則示意圖; 圖5為本發(fā)明中包圍球中有多個采樣點(diǎn)去冗余的規(guī)則示意圖; 圖6為本發(fā)明中三角形面片和采樣點(diǎn)的保留規(guī)則示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明優(yōu)選實(shí)施方式進(jìn)一步說明
圖1所示的流程圖給出了本發(fā)明整個實(shí)施的具體過程 步驟l,傳統(tǒng)網(wǎng)格模型的輸入,在本實(shí)施例中選用了 .X文件的模型作為輸入。
步驟2,計(jì)算模型的原始包圍盒,通過使用獲取模型包圍盒的函數(shù)計(jì)算出模型包圍 盒的左下角頂點(diǎn)坐標(biāo)和右上角頂點(diǎn)坐標(biāo),分別計(jì)算出XYZ三個方向包圍盒的邊長,選取三 個邊長中最大值作為新正方體包圍盒的邊長,建立新的包圍盒。 步驟3,根據(jù)新的包圍盒邊長L的固定比例值作為單位長度,劃分固定網(wǎng)格,具體劃分如圖2所示,包圍盒的固定比例值決定了采樣點(diǎn)的密度和采樣點(diǎn)級別,以固定網(wǎng)格在 X0Y面,X0Z面和YOZ面上的投影點(diǎn)作為射線頂點(diǎn),以對應(yīng)的坐標(biāo)軸Z、 Y和X作為射線方向 建立射線,將射線保留在射線結(jié)構(gòu)的列表中。 步驟4,遍歷射線列表,計(jì)算每一條射線和物體的交點(diǎn)列表,通過使用獲取射線和 物體交點(diǎn)的函數(shù)得到每一個交點(diǎn)坐標(biāo),為每一個交點(diǎn)設(shè)置一個標(biāo)識,用于表示該交點(diǎn)所屬 的面片,將交點(diǎn)信息保留在采樣點(diǎn)列表中。圖3顯示了平面模型的固定網(wǎng)格采樣,空間模型 的采樣與其類似。 步驟5,對上述步驟4采樣點(diǎn)列表去冗余,遍歷采樣點(diǎn)列表,計(jì)算每一個采樣點(diǎn)與 其后的每一個采樣點(diǎn)的距離,當(dāng)距離小于某個值的時候,刪除采樣點(diǎn)列表中位置靠后的那 個采樣點(diǎn),將其后的采樣點(diǎn)均向前移動一個位置,遍歷結(jié)束后保留的采樣點(diǎn)列表將是經(jīng)過 化簡和去冗余之后的采樣點(diǎn)列表。具體操作如下 步驟5. 1設(shè)置充分采樣點(diǎn)的采樣最大距離為R,R為新的網(wǎng)格模型包圍盒的邊長L 固定比值( 一般情況下R = 1/8L, 1/16L, 1/32L或1/64L等); 步驟5. 2對每個步驟4中求得的采樣點(diǎn),進(jìn)行包圍球計(jì)算,球心為采樣點(diǎn)本身,半 徑為R/2 ; 步驟5. 3刪除包圍球中的其他采樣點(diǎn),如圖4所示當(dāng)采樣點(diǎn)周圍R/2范圍內(nèi)有其 他采樣點(diǎn),則刪除其他采樣點(diǎn),如圖5所示當(dāng)已刪除的采樣點(diǎn)R/2范圍內(nèi)有不止一個采樣 點(diǎn),則只保留其中一個,刪除其他采樣點(diǎn)。 步驟6,計(jì)算模型每個面片中采樣點(diǎn)的數(shù)量,判斷可保留的三角形面片,如圖6中 保留的三角形面片3、4和5。將其保留在三角形列表中,具體包括如下操作
步驟6. 1根據(jù)采樣點(diǎn)的標(biāo)識(三角形面片的索引)計(jì)算出所有三角形面片中所包 含的采樣點(diǎn)數(shù)目; 步驟6.2當(dāng)前三角形面片中采樣點(diǎn)數(shù)量大于某個值時(通常為1-3的某個整數(shù) 值),保留當(dāng)前三角形面片在三角形列表中。 步驟7,判斷可保留采樣點(diǎn),若三角形列表中三角形索引和采樣點(diǎn)的標(biāo)識相同,則 刪除對應(yīng)的采樣點(diǎn)列表中的采樣點(diǎn),而將其余的采樣點(diǎn)保留在采樣點(diǎn)列表中;如圖6中三 角形面片1、2和6中采樣點(diǎn)予以保留,而三角形面片3、4和5中采樣點(diǎn)予以刪除。
步驟8,用生成的三角形列表和采樣點(diǎn)列表替代原始模型中的頂點(diǎn)數(shù)據(jù)和面片數(shù) 據(jù),動畫控制驅(qū)動新的模型,生成類X文件。直接使用原始動畫控制驅(qū)動新模型的具體流程 如下 步驟8. 1讀取原始模型信息,主要包括頂點(diǎn)緩沖區(qū)、面索引緩沖區(qū)和動畫控制信 息等; 步驟8. 2從頂點(diǎn)信息中分離出各個骨骼的頂點(diǎn)緩沖區(qū)和面索引緩沖區(qū); 步驟8.3讀取采樣點(diǎn)列表中的采樣點(diǎn),根據(jù)采樣點(diǎn)的面索引標(biāo)識,判斷各個采樣
點(diǎn)所屬的骨骼區(qū)域; 步驟8. 4用采樣點(diǎn)替換原始模型中該骨骼的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū);
步驟8.5讀取三角形列表中每個三角形的面索引信息,根據(jù)面的索引判斷三角形 所屬的骨骼區(qū)域; 步驟8.6用三角形列表的頂點(diǎn)信息替換原始模型中的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū); 步驟8. 7綁定骨骼動畫控制信息,生成類X文件,采樣點(diǎn)和三角形分別生成兩個文 件。 步驟9,根據(jù)不同的網(wǎng)格細(xì)分重復(fù)步驟3到步驟8,建立不同L0D級別的類X文件。 建立每一次的類X文件時,選用原始模型正方體包圍盒邊長的不同比例值進(jìn)行計(jì)算( 一般 有包圍盒邊長的1/8, 1/16, 1/32, 1/64等),每一個級別生成一個類X文件,從而建立起原始 模型的基于點(diǎn)采樣的L0D級別模型。 步驟IO,根據(jù)物體包圍盒到視點(diǎn)的最小值,選取不同LOD級別的類X模型進(jìn)行渲 染。對每一個類X文件的繪制要經(jīng)過采樣點(diǎn)和三角形面片兩個部分的繪制。
權(quán)利要求
一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,該方法包括步驟步驟1,傳統(tǒng)網(wǎng)格模型輸入;步驟2,計(jì)算網(wǎng)格模型的原始包圍盒,根據(jù)原始包圍盒建立新的正方體包圍盒;步驟3,根據(jù)新的正方體包圍盒建立固定網(wǎng)格,保留基于坐標(biāo)軸的射線列表;步驟4,對輸入模型進(jìn)行固定網(wǎng)格的表面點(diǎn)采樣;步驟5,過度采樣點(diǎn)去冗余;步驟6,判斷可保留三角形面片,保留在三角形列表中;步驟7,判斷可保留采樣點(diǎn),保留在采樣點(diǎn)列表中,刪除不可保留采樣點(diǎn);步驟8,用采樣點(diǎn)列表和三角形列表的信息替換原始模型X文件中的頂點(diǎn)信息和面的信息,生成類X文件;步驟9,根據(jù)不同的LOD級別建立不同的類X文件;步驟10,根據(jù)不同的距離選用不同的LOD級別模型進(jìn)行群體渲染。
2. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟3中根據(jù)固定網(wǎng)格建立基于坐標(biāo)軸XYZ三個方向的射線列表。
3. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟4中根據(jù)射線列表中的所有射線和物體表面的交點(diǎn),求得物體表面的點(diǎn)采樣。
4. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟5進(jìn)一步包括步驟5. l,設(shè)置充分采樣點(diǎn)的采樣最大距離為R ;步驟5. 2,對每個所述的步驟4中求得的采樣點(diǎn),進(jìn)行包圍球計(jì)算,球心為采樣點(diǎn)本身,半徑為R/2 ;步驟5.3,刪除包圍球中的其他采樣點(diǎn),只保留其中一個采樣點(diǎn)。
5. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟6中若三角形面片中包含的采樣點(diǎn)數(shù)大于確定的值,則保留當(dāng)前三角形面片于三角形列表中。
6. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟7中若三角形列表中三角形索引和采樣點(diǎn)的標(biāo)識相同,則刪除對應(yīng)的采樣點(diǎn)列表中的采樣點(diǎn),而將其余的采樣點(diǎn)保留在采樣點(diǎn)列表中。
7. 根據(jù)權(quán)利要求1所述的一種大規(guī)模虛擬動態(tài)場景簡化方法,其特征在于,所述的步驟8中生成類X文件過程進(jìn)一步包括步驟8. l,讀取原始模型信息;步驟8. 2,從頂點(diǎn)信息中分離出各個骨骼的頂點(diǎn)緩沖區(qū)和面索引緩沖區(qū);步驟8. 3,判斷各個采樣點(diǎn)所屬的骨骼區(qū)域;步驟8.4,用采樣點(diǎn)替換原始模型骨骼的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū);步驟8.5,根據(jù)面的索引判斷三角形所屬的骨骼區(qū)域;步驟8.6,用三角形頂點(diǎn)信息替換原始模型中的頂點(diǎn)信息,生成新的頂點(diǎn)緩沖區(qū);步驟8. 7,綁定骨骼動畫控制信息,生成類X文件,采樣點(diǎn)和三角形分別生成兩個文件。
全文摘要
本發(fā)明所述一種大規(guī)模虛擬動態(tài)場景簡化方法涉及虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域的大規(guī)模動態(tài)場景的簡化技術(shù)。為了提高大規(guī)模群體動畫的渲染速度和渲染效果,本發(fā)明采用固定網(wǎng)格表面點(diǎn)采樣并去除采樣點(diǎn)冗余,減少信息存儲量,提高了預(yù)處理速度,用保留在采樣點(diǎn)列表和三角形列表的信息替換原始模型X文件中的頂點(diǎn)信息和面的信息,生成類X文件而非采用關(guān)鍵幀技術(shù),簡化了群體動畫的處理的復(fù)雜性,同時根據(jù)不同的LOD級別建立不同的類X文件進(jìn)行群體渲染,提高渲染速度和渲染效果,從而本發(fā)明能夠有效地簡化大規(guī)模虛擬動態(tài)群體場景。
文檔編號G06T15/70GK101770655SQ20091026014
公開日2010年7月7日 申請日期2009年12月25日 優(yōu)先權(quán)日2009年12月25日
發(fā)明者何明耘, 何曉曦, 盧光輝, 曹躍, 曾維薇, 蔡洪斌, 陳雷霆 申請人:電子科技大學(xué)