董文雪
摘 要:該文基于筆者從事LOD的相關(guān)研究,以基于LOD的三維地形數(shù)據(jù)組織為研究對(duì)象,論文首先探討了地形的分塊與調(diào)度方法,在此基礎(chǔ)上,探討了紋理與高程數(shù)據(jù)的組織方法,相信對(duì)從事相關(guān)研究的同行能有所裨益。
關(guān)鍵詞:LOD 三維地形數(shù)據(jù) 組織
中圖分類(lèi)號(hào):P208 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2014)10(a)-0111-02
1 LOD概述
在運(yùn)用虛擬現(xiàn)實(shí)技術(shù)對(duì)大規(guī)模場(chǎng)景進(jìn)行繪制時(shí),常見(jiàn)的做法是用大量的三角面片來(lái)描述場(chǎng)景中的幾何模型。隨著描述場(chǎng)景的三角形面片的數(shù)目的增多,所繪制的圖像質(zhì)量會(huì)越來(lái)越高,但是繪制速度也會(huì)變得越來(lái)越慢,有時(shí)甚至?xí)驗(yàn)槔L制的場(chǎng)景過(guò)于復(fù)雜而出現(xiàn)場(chǎng)景漫游不流暢、畫(huà)面跳變等現(xiàn)象,這些都會(huì)嚴(yán)重影響實(shí)時(shí)繪制的效果。為了解決這一問(wèn)題,從20世紀(jì)90年代初開(kāi)始,研究人員就在這方面開(kāi)展了大量工作,而多層次細(xì)節(jié)(Levels of Details,LOD)模型技術(shù)就是在這樣的情況下提出并發(fā)展起來(lái)的。
2 地形的分塊與調(diào)度方法
當(dāng)前,大范圍、海量數(shù)據(jù)的獲取已成為現(xiàn)實(shí),空間數(shù)據(jù)的數(shù)量正在呈幾何級(jí)數(shù)增長(zhǎng)。然而,受計(jì)算機(jī)內(nèi)存容量、計(jì)算和繪制能力或者操作系統(tǒng)管理能力等因素的限制,在虛擬場(chǎng)景中一次裝入大規(guī)模的地形數(shù)據(jù)顯得不切實(shí)際,所以必須對(duì)原始地形數(shù)據(jù)進(jìn)行分塊處理。
根據(jù)Web三維數(shù)字地球的數(shù)據(jù)存儲(chǔ)、運(yùn)行效率等具體應(yīng)用需要,該文采用與視點(diǎn)相關(guān)的數(shù)據(jù)調(diào)度策略,“自頂向下”(從粗到細(xì))的地形簡(jiǎn)化策略,以規(guī)則格網(wǎng)表示地形。
2.1 分層與存儲(chǔ)
采用規(guī)則格網(wǎng)的地形數(shù)據(jù)實(shí)現(xiàn)視點(diǎn)相關(guān)的LOD簡(jiǎn)化技術(shù),必須對(duì)地形中的不同部分采用不同的表達(dá)分辨率。也就是說(shuō),需要采用一種分層表達(dá)方式,能對(duì)格網(wǎng)中的不同部分實(shí)現(xiàn)漸進(jìn)細(xì)分。目前,有許多方法能夠?qū)崿F(xiàn)這種多分辨率表達(dá)方式。其中最為通用的兩種方式是四叉樹(shù)和二叉樹(shù)。所謂四叉樹(shù)結(jié)構(gòu)就是將一個(gè)矩形區(qū)域均勻地分割為4個(gè)部分,而其中的每一部分又可以被分割為4個(gè)更小的部分,依次類(lèi)推。四叉樹(shù)結(jié)構(gòu)構(gòu)造地形的基本思想是:利用四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)表示地形模型時(shí),樹(shù)中的每一個(gè)節(jié)點(diǎn)都覆蓋地形中的一塊相應(yīng)的矩形區(qū)域。上層的節(jié)點(diǎn)涉及的采樣點(diǎn)較少,用其來(lái)表示地形時(shí)具有更高的繪制效率,但分辨率較低,地形表示的誤差較大。底層地形的分辨率高,誤差小,但繪制效率低。該文中實(shí)現(xiàn)的三維數(shù)字地球就采用了四叉樹(shù)數(shù)據(jù)結(jié)構(gòu),其基本分層原理為以地球360 °經(jīng)度和180 °緯度為標(biāo)準(zhǔn),第一層以36 °劃分,共分為(360/36)*(180/36)=50塊,第二層以18 °,第三層以9 °,依次類(lèi)推。
由于按平面展開(kāi)層層劃分,所以這里涉及到行、列的概念,通過(guò)由行、列到經(jīng)、緯度值的轉(zhuǎn)換,劃分后的每個(gè)方格對(duì)應(yīng)一個(gè)該層的紋理,再加上高度值就可以實(shí)時(shí)渲染三維圖像了。
2.2 裂縫消除
動(dòng)態(tài)地形的實(shí)時(shí)渲染可能會(huì)由于相鄰兩個(gè)矩形格網(wǎng)節(jié)點(diǎn)的分辨率不同而引起T型裂縫,此時(shí),由于高分辨率LOD層上增加了新的頂點(diǎn),而在相鄰低LOD層上沒(méi)有該頂點(diǎn),因此在邊界上就可能產(chǎn)生裂縫現(xiàn)象。在圖形繪制時(shí),將會(huì)導(dǎo)致在地形中出現(xiàn)空洞,會(huì)影響漫游時(shí)的視覺(jué)效果,同時(shí)可能會(huì)大大降低地形的真實(shí)感。裂縫的產(chǎn)生是由于在接邊處,相鄰格網(wǎng)節(jié)點(diǎn)參與構(gòu)網(wǎng)的頂點(diǎn)不同而造成的,如果使相鄰矩形格網(wǎng)節(jié)點(diǎn)邊界上的構(gòu)網(wǎng)頂點(diǎn)數(shù)相同,則不會(huì)出現(xiàn)裂縫。因此,解決裂縫問(wèn)題的關(guān)鍵是正確選擇相鄰不同分辨率節(jié)點(diǎn)邊界上參與構(gòu)網(wǎng)的頂點(diǎn)。
有兩類(lèi)常見(jiàn)的解決方法:一類(lèi)是細(xì)化可能產(chǎn)生裂縫的格網(wǎng)節(jié)點(diǎn),如反復(fù)細(xì)分裂縫周邊三角形以產(chǎn)生連續(xù)的表面、在格網(wǎng)的縫隙間插入新三角形以生成連續(xù)的地形表面,或在低分辨率格網(wǎng)邊界上增加頂點(diǎn),使得他們和高分辨率格網(wǎng)的多余頂點(diǎn)處于同一位置如圖1(b);另一類(lèi)則是簡(jiǎn)化可能產(chǎn)生裂縫的格網(wǎng)節(jié)點(diǎn),如改變高分辨率LOD地形格網(wǎng)中邊界上所增加的頂點(diǎn)的高程值,使增加的這些頂點(diǎn)位于相鄰的低分辨率LOD地形格網(wǎng)的邊界上,或者是忽略高分辨率地形格網(wǎng)中的中間頂點(diǎn),如圖1(c)。
一般來(lái)說(shuō),細(xì)化類(lèi)方案比較全面,任意層次的相鄰節(jié)點(diǎn)都能夠產(chǎn)生較好的繪制效果,但由于其增加了繪制三角形或頂點(diǎn)的數(shù)目,實(shí)現(xiàn)起來(lái)較為復(fù)雜,其繪制效率方面也必然有所損失;而簡(jiǎn)化策略在相鄰節(jié)點(diǎn)層次差不超過(guò)1時(shí)也能較好地實(shí)現(xiàn)實(shí)時(shí)繪制,且實(shí)現(xiàn)較為簡(jiǎn)單,繪制效率也較高,更加符合大規(guī)模地形繪制這種與視點(diǎn)相關(guān)的數(shù)據(jù)調(diào)度,因此這里我們選用減邊策略來(lái)消除裂縫。
2.3 視域剔除
在實(shí)時(shí)繪制中,視域剔除是減少需要繪制場(chǎng)景幾何復(fù)雜性的有效途徑之一。對(duì)于大規(guī)模地形,由于當(dāng)前視域大都只涉及地形的局部區(qū)域,因而視域剔除對(duì)于加速繪制作用更為明顯。由于對(duì)地形數(shù)據(jù)進(jìn)行了分塊處理,因此只需對(duì)分塊數(shù)據(jù)作一次裁減判斷,減少了裁減判斷時(shí)間;同時(shí),針對(duì)三維數(shù)字地球的情況,對(duì)于遮擋可以不予考慮。裁減采用矩形包圍盒的方式,即在整個(gè)節(jié)點(diǎn)的中心位置建立包圍盒,如圖2,包圍盒的半徑是數(shù)據(jù)塊長(zhǎng)、寬、高最大值的一半,在具體實(shí)現(xiàn)中,通過(guò)對(duì)包圍盒進(jìn)行裁減判斷,由返回值確定是否繪制,有效降低了每次顯示的數(shù)據(jù)量、提高了顯示速度。
3 紋理與高程
紋理是增強(qiáng)地形真實(shí)繪制的有效手段,特別是高清晰的衛(wèi)星圖像可行時(shí),能顯示大規(guī)模的紋理也是急需解決的問(wèn)題。許多有關(guān)地形LOD技術(shù)的文獻(xiàn)都側(cè)重于介紹有關(guān)地形幾何數(shù)據(jù)管理方面的內(nèi)容而忽略了紋理映射問(wèn)題。實(shí)際上,地形表面紋理組織以及顯示等方面也有許多非常重要的技術(shù)問(wèn)題需要研究和解決。
3.1 紋理與高程數(shù)據(jù)的組織
當(dāng)?shù)匦委B加紋理時(shí),如果全部載入最精細(xì)紋理,繪制速度會(huì)有明顯降低,同時(shí),全部采用最細(xì)節(jié)紋理顯示所有地形也會(huì)造成較差的視覺(jué)效果。根據(jù)地形數(shù)據(jù)的分層四叉樹(shù)結(jié)構(gòu),我們對(duì)紋理數(shù)據(jù)采用了瓦片金字塔結(jié)構(gòu)存儲(chǔ),將不同精細(xì)程度的紋理數(shù)據(jù)進(jìn)行分級(jí),每個(gè)劃分后的地形數(shù)據(jù)網(wǎng)格對(duì)應(yīng)一個(gè)該層下的一張512×512的紋理圖片。
對(duì)于高程數(shù)據(jù),我們同樣采用分層方式進(jìn)行組織與調(diào)度,對(duì)每個(gè)劃分后的地形數(shù)據(jù)網(wǎng)格進(jìn)行分割,生成n個(gè)頂點(diǎn),對(duì)應(yīng)該層下的一組高程數(shù)據(jù),根據(jù)地形數(shù)據(jù)、紋理圖片與高程數(shù)據(jù)即可進(jìn)行地形的實(shí)時(shí)繪制了。
3.2 下載與調(diào)度策略
當(dāng)需要渲染區(qū)域的四叉樹(shù)網(wǎng)絡(luò)生成后,就可以確定需要渲染的區(qū)域信息。在劃分層次網(wǎng)格與填充網(wǎng)絡(luò)坐標(biāo)信息完成后,首先對(duì)本地緩存進(jìn)行訪問(wèn),提取對(duì)應(yīng)的紋理與高程數(shù)據(jù),若存在則直接渲染,若不存在,則根據(jù)網(wǎng)格所在層級(jí)、行、列值生成URL向服務(wù)器進(jìn)行請(qǐng)求,進(jìn)行下載。當(dāng)?shù)趎+1層下載存在未下載完成的紋理時(shí),則繼續(xù)顯示該塊的第n層紋理,以完成平滑過(guò)渡,如圖3所示。
對(duì)紋理與高程的下載采用了優(yōu)先級(jí)策略,設(shè)下載隊(duì)列的長(zhǎng)度為l,當(dāng)l>200時(shí),則對(duì)下載優(yōu)先級(jí)進(jìn)行判斷,刪除掉下載優(yōu)先級(jí)較低的下載元素;而當(dāng)有下載完成時(shí),也通過(guò)判斷調(diào)取優(yōu)先級(jí)較高的先進(jìn)行下載。數(shù)據(jù)下載完成后,對(duì)地形進(jìn)行實(shí)時(shí)渲染。
4 結(jié)語(yǔ)
該文從基于視點(diǎn)的連續(xù)層次模型、多分辨紋理選取以及數(shù)據(jù)的組織和裝載等幾個(gè)方面對(duì)LOD地形簡(jiǎn)化技術(shù)進(jìn)行了分析,最后提出將LOD技術(shù)應(yīng)用于三維數(shù)字地球的實(shí)時(shí)渲染系統(tǒng)中,有效地改善了實(shí)時(shí)渲染的速度和精度的動(dòng)態(tài)調(diào)整。
參考文獻(xiàn)
[1] 胡愛(ài)華,何宗宜,馬曉萍.基于LOD的大規(guī)模地形實(shí)時(shí)繪制方法[J].測(cè)繪通報(bào),2009(12).
[2] 雷軍環(huán),曾凡喜,吳名星.基于四叉樹(shù)的視點(diǎn)相關(guān)LOD地形仿真算法研究[J]. 制造業(yè)自動(dòng)化,2010(8).
[3] 黃霆,趙紅武.動(dòng)態(tài)LOD四叉樹(shù)虛擬地形繪制[J].現(xiàn)代 計(jì)算機(jī)(專(zhuān)業(yè)版). 2010(3).
[4] 曹敏,楊長(zhǎng)興,楊煉.大規(guī)模地形漫游中動(dòng)態(tài)LOD算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(10).endprint