亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種海量數(shù)字化地形的快速動態(tài)繪制方法

文檔序號:6472022閱讀:232來源:國知局
專利名稱:一種海量數(shù)字化地形的快速動態(tài)繪制方法
技術(shù)領(lǐng)域
本發(fā)明公開一種海量數(shù)字化地形的快速動態(tài)繪制方法,屬于數(shù)字化地形繪 制技術(shù)領(lǐng)域。
背景技術(shù)
現(xiàn)有技術(shù)中公開了多種海量地形繪制方法。 一種基于地形塊金字塔模型與 線性四叉樹索引技術(shù)相結(jié)合的海量地形繪制方法(戴晨光等.海量地形數(shù)據(jù)實
時可視化算法。計算機輔助設(shè)計與圖形學(xué)學(xué)報,2004, 16 (11): 1604-1607)。該 方法首先把原始地形數(shù)據(jù)作為金字塔的底層,然后運用數(shù)據(jù)壓縮方式生成完整 的地形塊金字塔結(jié)構(gòu),再利用四叉樹構(gòu)建地形塊索引和管理地形數(shù)據(jù)。該方法 所使用的用于管理地形數(shù)據(jù)的金字塔結(jié)構(gòu)是建立在整塊地形上的,當(dāng)?shù)匦螖?shù)據(jù) 很大時,它會隨之變得龐大而復(fù)雜,從而影響了地形繪制的效率。此外, 一旦 建立全局地形的數(shù)據(jù)結(jié)構(gòu),便難以對數(shù)字化地形進行動態(tài)擴展.
一種大規(guī)模地形動態(tài)快速繪制技術(shù)(冷志光等.大規(guī)模地形動態(tài)快速繪制 技術(shù)研究。系統(tǒng)仿真學(xué)報,2006, 18 (10): 2832-2835)。該技術(shù)將大規(guī)模地形 轉(zhuǎn)換為小塊地形進行處理,并利用視點運動的連續(xù)性和前后幀的相關(guān)性,管理 調(diào)度細(xì)節(jié)層次模型。繪制時,由于該技術(shù)沒有將參與當(dāng)前繪制的地形塊統(tǒng)一進 行L0D (Level of Details)模型生成,會導(dǎo)致地形塊之間的細(xì)節(jié)層次不匹配問題。
一種基于外存的地形實時繪制框架(Lindstrom P, Pascucci V. Terrain
4Simplification Simplified: A General Framework for View- Dependent Out-of-Core Visualization. IEEE Transaction on Visualization and Computer Graphics, 2002, 8 (3): 239-254)。該框架在處理海量地形數(shù)據(jù)時, 釆用了搡作系統(tǒng)的外存模型技術(shù),利用內(nèi)存映像文件技術(shù)將磁盤空間上的海量 數(shù)據(jù)映像到內(nèi)存的一個地址空間上,由操作系統(tǒng)負(fù)責(zé)數(shù)據(jù)調(diào)度。該方法盡管可 以對海量數(shù)據(jù)進行快速繪制,但計算過程本身比較復(fù)雜,不易于實現(xiàn)。此外, Losasso等提出 一種基于GPU的Geometry CI ipmaps地形繪制技術(shù)(參見 Losasso F, Hoppe H. Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids. ACM Transactions on Graphics. 2004, 23 (3): 769-776), 用以視點為中心的嵌套規(guī)則格網(wǎng)集合作為數(shù)據(jù)結(jié)構(gòu),并將該數(shù)據(jù)結(jié)構(gòu)存儲在圖 形硬件的頂點緩沖區(qū)中。當(dāng)視點移動時,clipmap隨之而變化,同時地形數(shù)據(jù)以 增量的方式載入。該技術(shù)有很高的執(zhí)行效率,但是由于其需要特別的圖形加速 硬件支持,目前還難以推廣應(yīng)用。

發(fā)明內(nèi)容
基本概念
1、在海量地形中進行場景漫游的過程,相當(dāng)于一個第一人稱的相機在地形 中自由運動的過程。只有被相機拍攝到的場景,才需要作為漫游過程中視覺觀 察到的內(nèi)容,繪制到計算機屏幕上。由于海量地形可被看成是無限大的,而相 機能夠拍攝到的場景又只占整個地形的一小部分,所以在繪制的過程中,就沒 有必要將整個地形數(shù)據(jù)全部從外存(如硬盤)全部調(diào)入到內(nèi)存。這時,只需要調(diào) 入相機四周一定距離內(nèi)的那部分地形數(shù)據(jù),就能夠?qū)崿F(xiàn)相機拍攝到的場景地形的計算和繪制工作。這種特性稱為相機的數(shù)據(jù)局部性。
2、 相機在地形場景中進行漫游運動時,不斷改變其位置和姿態(tài)。這時,與 相機相關(guān)聯(lián)的局部地形數(shù)據(jù)也會隨之在發(fā)生變化。那些已在內(nèi)存中、但不是局 部地形一部分的數(shù)據(jù)需要從內(nèi)存中清除以騰出內(nèi)存,同時又需要將不在內(nèi)存但 在局部地形中的數(shù)據(jù)從磁盤調(diào)入到內(nèi)存。實現(xiàn)數(shù)據(jù)調(diào)入或調(diào)出的技術(shù)稱為調(diào)度。
3、 為了有效地進行內(nèi)存與外存之間的數(shù)據(jù)調(diào)度,需要將海量地形分割成 一系列的小地形塊,并以特定的形式存儲在外存。存儲形式必須滿足在需要某 塊地形塊時,能夠迅速地在外存找到該塊地形塊。地形塊在外存上的存儲形式 稱為地形數(shù)據(jù)的組織。
4、 相機能夠拍攝到的范圍是一個錐狀體, 一般定義為一個由6個面圍成的
四棱臺(見附圖1),稱為視景體。內(nèi)存中相機附近的地形只有落入到視景體中, 才真正需要繪制。計算局部地形落入視景體內(nèi)的部分的過程稱為視景體裁剪,
或簡稱為裁剪。
5、 相同大小的兩塊地形,如果它們都落入到視景體中,但與相機遠(yuǎn)近距離
不同,則在繪制出的屏幕效果上,兩塊地形占據(jù)屏幕的面積大小不同。對于占
用屏幕面積很小的地形,只要給出一個輪廓就能表達(dá)出其形狀信息;而占用屏
幕面積較大的地形,必須給出足夠的細(xì)節(jié)才都較真實地描述地形的起伏等特 征。根據(jù)距離相機的遠(yuǎn)近不同,生成不同分辨率的地形數(shù)據(jù),并采用恰當(dāng)分辨 率的數(shù)據(jù)進行繪制的過程,稱為地形的多分辨率處理。多分辨率處理可以高效 地優(yōu)化地形數(shù)據(jù)配置,提高數(shù)據(jù)的利用效率。
本發(fā)明一種海量數(shù)字化地形的快速動態(tài)繪制方法,其步驟如下 1、海量地形數(shù)據(jù)的外存組織將原始的海量數(shù)字化DEM (Digital Elevation Model)地形模型剖分為一 組大小一致的標(biāo)準(zhǔn)地形塊,并把這些地形塊存儲在計算機外存上,每個地形塊 均用其在全局地形中的位置坐標(biāo)信息作為標(biāo)識。根據(jù)需要,用戶可在任意時刻 向現(xiàn)有全局地形的邊界處添加新地形塊,以擴充全局地形。
2、 生成內(nèi)存數(shù)據(jù)結(jié)構(gòu)
所述內(nèi)存數(shù)據(jù)結(jié)構(gòu)包括核心地形塊集、橫向地形塊集、縱向地形塊集、 以及多分辨率輔助結(jié)構(gòu)四部分;核心地形塊集由4個駐留內(nèi)存的地形塊組成,它 們直接參與當(dāng)前時刻的繪制工作,分別標(biāo)記為^:仏^仏AW、 橫向地形 塊集由4個駐留內(nèi)存的地形塊組成,用于存放核心地形塊集的左右位置的相鄰地 形塊,分別標(biāo)記為瓜仄瓜A M仄朋A'縱向地形塊集也由4個駐留內(nèi)存的地形 塊組成,用于存放核心地形塊集的上下位置的相鄰地形塊,分別標(biāo)記為M仏M仏 K"、 所述核心地形塊集、橫向地形塊集、縱向地形塊集的12個地形塊在
全局地形中的位置關(guān)系是,核心地形塊集的四個地形塊居中,橫向地形塊集的 四個地形塊分列于兩側(cè),縱向地形塊集的四個個地形塊分列于上下;核心地形 塊集的多分辨率輔助結(jié)構(gòu)由地形四叉樹、標(biāo)識矩陣組成(為現(xiàn)有技術(shù),在此不 再詳細(xì)表述)。
3、 數(shù)據(jù)調(diào)度
(1)預(yù)調(diào)度核心地形塊集(含4個核心地形塊)構(gòu)成的局部地形區(qū)域稱為 核心塊(附圖3所示的正方形粗框中的部分);多分辨率繪制例程根據(jù)相機視景體 在核心塊中的位置,決定是否需要預(yù)先將將來潛在需要的地形塊調(diào)入到內(nèi)存中 備用;繪制例程在核心塊中定義一個居中的正方形區(qū)域(附圖4中的虛線框), 當(dāng)視景體的八個頂點之一由于相機移動或旋轉(zhuǎn)超出該區(qū)域的某個邊界時,便激活調(diào)度例程;后者將該邊界外側(cè)的相鄰地形塊調(diào)入到橫向地形塊集或縱向地形
塊集中的相應(yīng)位置上;例如在附圖4右圖中,頂點r超出了正方形區(qū)域的上邊界,
這時被激活的地形塊調(diào)度例程將地形塊(n-l,"+l)和(","+l)分別調(diào)入到內(nèi)存中
K辟W嫩位置;
(2) 塊更新被預(yù)調(diào)度的地形塊加載到內(nèi)存后,并未立即參與當(dāng)前繪制; 只有當(dāng)相機視景體的某個頂點移出核心塊時,才會對核心地形塊集中的地形塊 進行更新;附圖5圖示了視景體頂點r超出右邊界時,發(fā)生的部分地形塊更新 朋〃與服紛別成為新的W辨P朋",而A^與A^則變成新的"〃和^A當(dāng)視景體
頂點超出其它邊界時,處理的過程相同;
(3) 預(yù)保留釆用預(yù)保留機制保存從核心塊淘汰出來的地形塊,即不立 即刪除內(nèi)存中剛剛從核心塊移出的兩個地形塊,而是將它們暫時保留在橫向地
形塊集或縱向地形塊集中;例如在附圖5中,從核心塊中淘汰出的w沐w紛別
被記錄在瓜^和ffi/7中;在每次進行地形塊調(diào)度時,都先判斷需要調(diào)度的地形塊 是否已在橫向地形塊集或縱向地形塊集中;如果已經(jīng)存在,則不再從外存調(diào)入; 在相機漫游過程中,預(yù)調(diào)度、塊更新和預(yù)保留在保持核心地形塊集、橫向 地形塊集和縱向地形塊集的相對位置不變的情況下(參見附圖2),只是在全局
地形中平移這三個地形塊集;內(nèi)外存地形塊調(diào)度的時機以及調(diào)入哪些地形塊, 均由多分辨率繪制例程通過相關(guān)計算決定,并驅(qū)動地形塊調(diào)度例程并發(fā)地執(zhí)行 預(yù)調(diào)度、塊更新和預(yù)保留等操作來完成相關(guān)任務(wù);
4、多分辨率地形網(wǎng)格生成與繪制
在每次塊更新之后,都為核心塊建立一個四叉樹結(jié)構(gòu)(參見附圖6),以及 一個標(biāo)識矩陣;繪制時,首先求出圍成相機視景體的6個平面的方程;其次運用包圍盒檢測技術(shù)自頂向下分層次對四叉樹的每一個節(jié)點進行可見性判斷,剔除 不在視景體內(nèi)的節(jié)點,同時根據(jù)相機位置,并借助四叉樹結(jié)構(gòu)生成多分辨率地 形的標(biāo)識矩陣,由標(biāo)識矩陣計算相對于該相機位置的多分辨率地形網(wǎng)格(參見 附圖7:通過分層遍歷四叉樹,確定標(biāo)識矩陣,再由標(biāo)識矩陣生成多分辨率地 形網(wǎng)格);最后將生成的地形三角網(wǎng)格送入渲染管道實現(xiàn)地形繪制。
本發(fā)明克服了現(xiàn)有海量地形繪制方法的不足,具有如下優(yōu)點
1、 實現(xiàn)了超大規(guī)模地形的動態(tài)繪制。本方法中用于地形多分辨率繪制的局
部數(shù)據(jù)為當(dāng)前狀態(tài)下駐留內(nèi)存的4塊核心地形塊,它與橫向/縱向地形塊集、以
及其它相關(guān)輔助數(shù)據(jù)結(jié)構(gòu)等占用的內(nèi)存總量是一個常數(shù),與全局地形的數(shù)據(jù)規(guī) 模無關(guān)。
2、 本方法采用特別設(shè)計的12塊駐留內(nèi)存的地形塊結(jié)構(gòu)來解決內(nèi)外存之間的 數(shù)據(jù)調(diào)度問題,所涉及的數(shù)據(jù)結(jié)構(gòu)比較簡單,計算過程易于實現(xiàn);在繪制過程 中,無需使用特別的圖形硬件加速,能夠在普通PC機上實現(xiàn)大規(guī)模地形的實時 繪制。
3、 自然地解決了地形塊之間連續(xù)LOD的過渡問題。由于局部四叉樹結(jié)構(gòu)是 建立在當(dāng)前參與繪制的核心塊之上的,所以無需進行額外處理就能自然地保證 了地形塊間L0D層次的連續(xù)過渡,有效地解決了地形塊之間的細(xì)節(jié)層次不匹配 問題。
4、 實現(xiàn)了地形繪制過程中地形的動態(tài)擴展。在繪制地形的過程中,可以根 據(jù)需要向地形數(shù)據(jù)庫中動態(tài)地添加新的地形塊,對全局地形進行動態(tài)擴展。


圖l相機視景體及其相關(guān)參數(shù)
圖2本發(fā)明方法的主要處理過程及結(jié)構(gòu)
圖3駐留內(nèi)存的12塊地形塊之間的空間位置關(guān)系
圖4核心塊中的預(yù)調(diào)度標(biāo)識域(a)及調(diào)度時機(b)
圖5核心地形塊的更新示意圖
圖6核心塊的四叉樹剖分結(jié)構(gòu)
圖7標(biāo)識矩陣(a)及其對應(yīng)的地形三角網(wǎng)格結(jié)構(gòu)(b)
圖8實施例中的內(nèi)存地形塊數(shù)據(jù)組織結(jié)構(gòu)(b為外存地形塊)
圖9實施例中的部分視景體參數(shù)
具體實施例方式
下面結(jié)合附圖和實施例,對本發(fā)明作進一步詳細(xì)說明。 實施例
1、原始地形DEM數(shù)據(jù)的分割及外存數(shù)據(jù)組織
(1) 獲取數(shù)字化地形原始數(shù)據(jù)本例從美國CGIAR-CSI組織官方網(wǎng)站 (http:〃srtm. csi.cgiar. org/)上下載的中國地區(qū)的SRTM 90m DEM數(shù)據(jù);
(2) 將原始DEM數(shù)據(jù)分割成大小為^x^的多塊標(biāo)準(zhǔn)化地形塊,本實施例中 取#為257。分割時,地形塊邊界線上的高程點需要同時保存到相鄰的兩塊地形 塊中。
(3) 用表示每個地形塊在原始地形中位置的二維坐標(biāo)作為檢索關(guān)鍵字,將 所有地形塊按關(guān)鍵字儲存到0racle8數(shù)據(jù)庫中,使得通過數(shù)據(jù)庫可以快速查到 相應(yīng)地形塊的數(shù)據(jù)。
102、 生成內(nèi)存數(shù)據(jù)結(jié)構(gòu)
如附圖8所示,三個地形塊集分別用 一個長度為12的地形塊指針數(shù)組的不
同片段表示,它們分別指向存儲相應(yīng)地形塊的內(nèi)存地址。地形塊數(shù)據(jù)在內(nèi)存中
用動態(tài)方式進行管理數(shù)據(jù)調(diào)入時申請內(nèi)存空間存放數(shù)據(jù),并將該空間的起始 地址賦給相應(yīng)的地形塊指針;數(shù)據(jù)移出縱向或橫向地形塊集時釋放所占空間。 不同地形塊集的數(shù)據(jù)通過地形塊指針數(shù)組進行訪問。
3、 初始化地形繪制系統(tǒng)
(1) 設(shè)置相機視景體的大小、初始位置及視線方向(參見附圖1與附圖9)。 本例中,將視景體的上/下平面之間的張角/b^設(shè)為60 ,將相機視景體縱/ 橫比s^e^ (=#/的設(shè)為1 (即1: 1),將相機與其視景體遠(yuǎn)側(cè)裁剪平面之間 距離/"sr設(shè)為c"(;r/6) x257,將相機放置位置的坐標(biāo)值(ex, e/, ez)設(shè)置為 (257, 257, 60),將視線方向設(shè)為與/軸正方向 一致。
(2) 通過地形塊信息數(shù)據(jù)庫,加載空間坐標(biāo)為(O, 0), (1, 0), (0, 1), (1, l)四個地形塊到內(nèi)存作為當(dāng)前核心地形塊,并使W《W", M"和^ "分別指 向它們。
4、 繪制多分辨率地形模型
(1) 計算當(dāng)前核心塊所覆蓋地形區(qū)域的中心點坐標(biāo),并標(biāo)記為ft假設(shè)核 心地形塊分別為(a, 6), 6), (a, WD, ^1).則。的坐標(biāo)為
(^1)*^.本例中初始狀態(tài)下O的坐標(biāo)為(257, 257)。
(2) 構(gòu)造四叉樹,使該樹的根節(jié)點RootNode表示當(dāng)前4個核心地形塊所表 示的區(qū)域(即核心塊),并記該節(jié)點的中心也為Q完整的四叉樹結(jié)構(gòu)如附圖6所 示。(3)采取從上到下的方式,結(jié)合視點相關(guān)的L0D技術(shù)、可見性剔除技術(shù)、 以及節(jié)點粗糙度評價方法生成當(dāng)前狀態(tài)下的多分辨率地形模型。該過程用到了
兩個隊列Current隊列和Next隊列.多分辨率地形模型的生成步驟如下
St印1、將RootNode加入到Current隊列中,并將LevelSize設(shè)為256 (代表 細(xì)節(jié)層次);
St印2、判斷LevelSize是否大于O.如果是,繼續(xù)執(zhí)行Step 3,否則跳到 Step 6;
St印3、若Current非空,則依次遍歷Current隊列的各節(jié)點對于每個節(jié) 點Node(i)按下列子步驟執(zhí)行:
3. 1判斷Node(i)是否在視景體中.如果不是,轉(zhuǎn)回到Step 3;
3.2判斷Node(i)邊長的一半是否為l.如果是,繪制Node(i)節(jié)點,再 轉(zhuǎn)回到Step 3;
3.3判斷Node(i)是否需要繼續(xù)分割.如果不是,繪制Node(i)節(jié)點,轉(zhuǎn) 回到Step 3;
3.4判斷Node(i)能否需要繼續(xù)分割.如果是,將該節(jié)點的四個子節(jié)點 標(biāo)識設(shè)為激活,并將它們添加到Next隊列中;否則繪制Node(i),并將子節(jié)點 標(biāo)識置為未激活.
St印4、將LevelSize的值減小一半,即除以2;
Step 5、交換Current隊列和Next隊列進,返回到Step2繼續(xù)執(zhí)行;
Step 6、結(jié)東。
上述步驟3.1中"判斷一個節(jié)點是否在視景體中"的過程,先以該節(jié)點的 中心點坐標(biāo)為圓心,以其邊長的一半為半徑建立一個包圍球,然后通過計算包圍球與相機視景體的六個面的空間關(guān)系,對該節(jié)點進行是否可見的判斷;
步驟3. 3中利用公式Z/(s/zex^ze) < C判斷一個節(jié)點是否需要被分割 其中Z為節(jié)點中心到相機的距離;W^e為節(jié)點代表區(qū)域的邊長之半;C為LOD處理 的閾值,本例中將其設(shè)置為25。
步驟3.4中,限定只有當(dāng)分割后該節(jié)點與其上、下、左、右的四個相鄰節(jié) 點的細(xì)節(jié)層次不超過l時,該節(jié)點才可以被分割。
5、 預(yù)調(diào)度繪制過程潛在需要的地形塊數(shù)據(jù)
(1) 計算視景體6個面的平面方程及其8個頂點的位置坐標(biāo).利用OpenGL 圖形庫中的功能函數(shù)較容易地得到當(dāng)前的投影矩陣和模型矩陣,然后根據(jù)這兩 個矩陣推導(dǎo)出視景體6個面的平面方程以及八個頂點的坐標(biāo)。
(2) 創(chuàng)建預(yù)調(diào)度標(biāo)識域.該標(biāo)識域的中心為《大小可動態(tài)調(diào)整。本例中將 其大小設(shè)為4個核心地形塊所覆蓋地形區(qū)域的四分之三大小(參見附圖4中的虛 框)。
(3) 判斷視景體的某一頂點是否從里向外穿過了該標(biāo)識域的某條邊界線.
如果沒有,則繼續(xù)漫游;否則,根據(jù)該頂點穿過的方向確定需要調(diào)度的兩個地
形塊的坐標(biāo)值。如附圖4右圖所示,頂點r穿過了上邊界,則設(shè)定需預(yù)調(diào)度的 兩個地形塊索引坐標(biāo)為(/2"1, #1)和(/ , 視景體頂點穿過其它邊界時的 處理情況與此完全類似。
(4) 啟動地形塊調(diào)度線程,利用(&1,伊l)和(/ , ^1)為關(guān)鍵字從地形塊
數(shù)據(jù)庫中查找相應(yīng)的地形塊,并將它們加載到內(nèi)存中.并使指針K^指向子地 形塊O "l, #1), M〃指向子地形(a #1)。
6、 更新核心地形塊判斷視景體是否有頂點移出了當(dāng)前核心塊如果沒有移出,則繼續(xù)漫游; 否則,根據(jù)該頂點移出的方向確定如何更新參與當(dāng)前繪制的四塊子地形.假設(shè)
如附圖5所示,頂點K沿J軸正向方向向右移出核心塊,則更新如下
(1) 將當(dāng)前預(yù)保留指針ffi仏瓜"指向的地形數(shù)據(jù)(/ "2, /7)和(/2-2, tl)從
內(nèi)存中清除,并且使巡〃、瓜"分別指向(t1,")和(/KL,
(2) 使A^與W紛別指向地形塊(/ , /2)和(/7, /7-刀,使^ "和朋紛別指向
地形塊("+l,刀)與("4,
(3)更新繪制區(qū)域中心點晰坐標(biāo)值。
視景體頂點沿其它方向移出核心塊時的處理情況與上述處理方法完全類似。
7、轉(zhuǎn)4,重復(fù)4 6的處理過程,對動態(tài)漫游地形場景。
權(quán)利要求
1、一種海量數(shù)字化地形的快速動態(tài)繪制方法,其步驟如下A、海量地形數(shù)據(jù)的外存組織將原始的海量數(shù)字化DEM地形模型剖分為一組大小一致的標(biāo)準(zhǔn)地形塊,并把這些地形塊存儲在計算機外存上,每個地形塊均用其在全局地形中的位置坐標(biāo)信息作為標(biāo)識;B、生成內(nèi)存數(shù)據(jù)結(jié)構(gòu)所述內(nèi)存數(shù)據(jù)結(jié)構(gòu)包括核心地形塊集、橫向地形塊集、縱向地形塊集以及核心地形塊集的多分辨率輔助結(jié)構(gòu)四部分;核心地形塊集由4個駐留內(nèi)存的地形塊組成,它們直接參與當(dāng)前時刻的繪制工作,分別標(biāo)記為RLU、RRU、RLD、RRD;橫向地形塊集由4個駐留內(nèi)存的地形塊組成,用于存放核心地形塊集的左右位置的相鄰地形塊,分別標(biāo)記為HLU、HLD、HRU、HRD;縱向地形塊集也由4個駐留內(nèi)存的地形塊組成,用于存放核心地形塊集的上下位置的相鄰地形塊,分別標(biāo)記為VLU、VRU、VLD、VRD;所述核心地形塊集、橫向地形塊集、縱向地形塊集的12個地形塊在全局地形中的位置關(guān)系是,核心地形塊集的四個地形塊居中,橫向地形塊集的四個地形塊分列于兩側(cè),縱向地形塊集的四個個地形塊分列于上下;核心地形塊集的多分辨率輔助結(jié)構(gòu)由地形四叉樹、標(biāo)識矩陣組成;C、數(shù)據(jù)調(diào)度a、預(yù)調(diào)度核心地形塊集構(gòu)成的局部地形區(qū)域稱為核心塊;多分辨率繪制例程根據(jù)相機視景體在核心塊中的位置,決定是否需要預(yù)先將將來潛在需要的地形塊調(diào)入到內(nèi)存中備用;繪制例程在核心塊中定義一個居中的正方形區(qū)域,當(dāng)視景體的八個頂點之一由于相機移動或旋轉(zhuǎn)超出該區(qū)域的某個邊界時,便激活調(diào)度例程;后者將該邊界外側(cè)的相鄰地形塊調(diào)入到橫向地形塊集或縱向地形塊集中的相應(yīng)位置上;b、塊更新被預(yù)調(diào)度的地形塊加載到內(nèi)存后,并未立即參與當(dāng)前繪制;只有當(dāng)相機視景體的某個頂點移出核心塊時,才會對核心地形塊集中的地形塊進行更新;當(dāng)視景體頂點超出其它邊界時,處理的過程相同;c、預(yù)保留采用預(yù)保留機制保存從核心塊淘汰出來的地形塊,即不立即刪除內(nèi)存中剛剛從核心塊移出的兩個地形塊,而是將它們暫時保留在橫向地形塊集或縱向地形塊集中;在每次進行地形塊調(diào)度時,都先判斷需要調(diào)度的地形塊是否已在橫向地形塊集或縱向地形塊集中;如果已經(jīng)存在,則不再從外存調(diào)入;在相機漫游過程中,預(yù)調(diào)度、塊更新和預(yù)保留在保持核心地形塊集、橫向地形塊集和縱向地形塊集的相對位置不變的情況下,只是在全局地形中平移這三個地形塊集;內(nèi)外存地形塊調(diào)度的時機以及調(diào)入哪些地形塊,均由多分辨率繪制例程通過相關(guān)計算決定,并驅(qū)動地形塊調(diào)度例程并發(fā)地執(zhí)行預(yù)調(diào)度、塊更新和預(yù)保留操作來完成相關(guān)任務(wù);D、多分辨率地形網(wǎng)格生成與繪制在每次塊更新之后,都為核心塊建立一個四叉樹結(jié)構(gòu),以及一個標(biāo)識矩陣;繪制時,首先求出圍成相機視景體的6個平面的方程;其次運用包圍盒檢測技術(shù)自頂向下分層次對四叉樹的每一個節(jié)點進行可見性判斷,剔除不在視景體內(nèi)的節(jié)點,同時根據(jù)相機位置,并借助四叉樹結(jié)構(gòu)生成多分辨率地形的標(biāo)識矩陣,由標(biāo)識矩陣計算相對于該相機位置的多分辨率地形網(wǎng)格通過分層遍歷四叉樹,確定標(biāo)識矩陣,再由標(biāo)識矩陣生成多分辨率地形網(wǎng)格;最后將生成的地形三角網(wǎng)格送入渲染管道實現(xiàn)地形繪制。
全文摘要
本發(fā)明公開了一種海量數(shù)字化地形的快速動態(tài)繪制方法,其步驟如下將原始的海量數(shù)字化DEM地形模型剖分為標(biāo)準(zhǔn)地形塊,并存儲在計算機外存上;生成內(nèi)存數(shù)據(jù)結(jié)構(gòu)核心地形塊集、橫向地形塊集、縱向地形塊集、以及核心地形塊集的多分辨率輔助結(jié)構(gòu)四部分;數(shù)據(jù)調(diào)度預(yù)調(diào)度、塊更新、預(yù)保留;多分辨率地形網(wǎng)格生成,最后將生成的地形三角網(wǎng)格送入渲染管道實現(xiàn)地形繪制。本發(fā)明方法,實現(xiàn)了超大規(guī)模地形的動態(tài)繪制。所涉及的數(shù)據(jù)結(jié)構(gòu)比較簡單,計算過程易于實現(xiàn)。自然地解決了地形塊之間連續(xù)LOD的過渡問題。實現(xiàn)了地形繪制過程中地形的動態(tài)擴展。
文檔編號G06T1/60GK101441779SQ20081024323
公開日2009年5月27日 申請日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者龐明勇, 趙瑞斌 申請人:南京師范大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1