資源描述:
《基于DirectX的真實(shí)感地形實(shí)時(shí)渲染技術(shù).pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第26卷第4期海洋測(cè)繪Vol126,No142006年7月HYDROGRAPHICSURVEYINGANDCHARTINGJul.,2006基于DirectX的真實(shí)感地形實(shí)時(shí)渲染技術(shù)11,2111張立朝,申家雙,鄭海鷹,王宏偉,張世全(1.解放軍信息工程大學(xué)測(cè)繪學(xué)院,河南鄭州450052;2.海軍海洋測(cè)繪研究所,天津300061)摘要:主要研究和探討了基于DirectX的真實(shí)感地形實(shí)時(shí)渲染技術(shù)。文章在規(guī)則格網(wǎng)DEM基礎(chǔ)之上,采用基于LOD的DEM多分辨率動(dòng)態(tài)構(gòu)網(wǎng)技術(shù)和多層紋理貼圖方法,生成比較真實(shí)的地面景觀
2、,同時(shí)添加了天空、煙霧等效果,使顯示效果更加真實(shí)。生成的三維地形的渲染速度達(dá)到了20~30幀,基本上滿足了實(shí)時(shí)顯示的要求。關(guān)鍵詞:地理信息系統(tǒng);數(shù)字高程模型;紋理;地面景觀;地表細(xì)節(jié)中圖分類號(hào):P208文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):167123044(2006)04200422041引言隨著3DGIS以及VRGIS相繼提出,反映出人們認(rèn)識(shí)周圍環(huán)境從傳統(tǒng)的二維思維方式轉(zhuǎn)向更自然的、立體空間的思維方式的變化趨勢(shì)。然而,解決基于海量數(shù)據(jù)的三維場景的實(shí)時(shí)繪制問題是實(shí)現(xiàn)這種轉(zhuǎn)變的一大瓶頸。而地形作為地理環(huán)境的基礎(chǔ)框架,使得
3、解決地形的實(shí)時(shí)顯示問題更是首當(dāng)其沖,建立實(shí)時(shí)交互的虛擬地形成為目前國內(nèi)外研究的熱[1]點(diǎn)。本文就如何生成逼真的地表景觀進(jìn)行了研究。Direct3D標(biāo)準(zhǔn)的圖形顯示過程可分為兩個(gè)階圖1Direct3D的圖形顯示過程示意圖段。第一階段稱為坐標(biāo)變換和光照(transformingandlighting,T&L)。在這個(gè)階段,通過設(shè)置一個(gè)虛2基于LOD的DEM多分辨率動(dòng)態(tài)構(gòu)網(wǎng)技術(shù)擬相機(jī),世界空間的三維浮點(diǎn)坐標(biāo)轉(zhuǎn)換成屏幕空間以像素為單位的整數(shù)坐標(biāo)(坐標(biāo)變換不只是物體頂由于地形規(guī)則格網(wǎng)數(shù)據(jù)的特殊性,我們不需要點(diǎn)位置的變換
4、,它還可能包括頂點(diǎn)法線向量、紋理坐采用鏈表結(jié)構(gòu)來實(shí)現(xiàn)四叉樹,而是創(chuàng)建了兩個(gè)數(shù)組,標(biāo)等的變換),然后通過計(jì)算當(dāng)時(shí)場景中的光照屬一個(gè)用來存儲(chǔ)地形的高程信息,另一個(gè)用來存儲(chǔ)對(duì)性,賦予頂點(diǎn)相應(yīng)的顏色值。第二階段稱為光柵化應(yīng)點(diǎn)的分層信息,通過兩次掃描數(shù)組來實(shí)現(xiàn)地形的處理階段,Direct3D將經(jīng)過T&L處理的頂點(diǎn)組織為分層和渲染。這樣,既可以降低編程難度,也能提高以點(diǎn)、線、面為基礎(chǔ)的圖元,應(yīng)用紋理貼圖和物體的訪問內(nèi)存的效率,從而提高整體運(yùn)行的速度。如圖顏色屬性,決定頂點(diǎn)(或像素點(diǎn))的最終顏色值。有2、圖3所示。時(shí)根據(jù)
5、特殊的需要,我們可以跳過其中的某些階00000[3]段。整個(gè)過程如右圖1所示。01000001000000000000圖2對(duì)應(yīng)塊的分層信息收稿日期:2005211229;修回日期:2006203220作者簡介:張立朝(19812),男,河南新鄉(xiāng)人,博士研究生,主要從事軍事地理信息系統(tǒng)研究。第4期張立朝,等基于DirectX的真實(shí)感地形實(shí)時(shí)渲染技術(shù)34201200197192190221215211215220243237234240241209210215220244189194198225247圖3地形的
6、高程數(shù)據(jù)圖3中的數(shù)據(jù)就是地形的高程數(shù)據(jù),圖2中的數(shù)據(jù)是對(duì)應(yīng)塊的分層信息,0(false)表示不需細(xì)分,1圖5解決裂縫現(xiàn)象的示意圖(true)表示需要細(xì)分。每次渲染時(shí),我們首先將圖2中的數(shù)據(jù)全部變?yōu)?(false),然后將地形的分塊信息送入節(jié)點(diǎn)評(píng)價(jià)系統(tǒng),如果需要細(xì)分,將該位置變?yōu)?(true),將該塊分為四塊,送入遞歸函數(shù)處理,否則,返回上一層。節(jié)點(diǎn)評(píng)價(jià)系統(tǒng)的參數(shù)與該塊到視點(diǎn)的距離成正比,與該塊的粗糙程度成反比:dif(>9)c圖6修補(bǔ)上方地形塊示意圖如果距離與粗糙程度之比大于某一個(gè)閾值,就要修補(bǔ)某一塊的上方
7、,就要根據(jù)該塊上方的那說明該塊不需要細(xì)分,否則就需要細(xì)分。一塊來進(jìn)行。如果上方的塊可分,就要將線的中點(diǎn)按照上述法則掃描數(shù)組后,就可以得到地形的加入,然后看細(xì)分后下面的兩塊需不需要細(xì)分,如果分層信息,接下來的工作就是按照地形的分層信息需要細(xì)分,將對(duì)應(yīng)的中點(diǎn)加入,否則,直接返回。在來渲染地形。我們按照原來的順序再次掃描分層數(shù)圖6中,因?yàn)樯厦娴囊淮髩K可分,所以將A點(diǎn)加入,組,每當(dāng)?shù)竭_(dá)一個(gè)不需細(xì)分的節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)可在其分出來的下面兩小塊中,左邊的小塊可分,所以見,就使用繪制三角形扇的方法將該小塊地形繪制將B點(diǎn)加
8、入。修補(bǔ)前后的圖形效果圖如圖7所示。出來。但是這樣在相鄰小塊的精度等級(jí)相差1倍或1倍以上時(shí),渲染的地形會(huì)出現(xiàn)裂縫,如圖4和5所示。這就需要對(duì)這些裂縫進(jìn)行修補(bǔ),其方法是在精度不同的點(diǎn)再加上幾條線如圖6所示。這樣相鄰的兩塊可以相差任意精度。圖4四叉樹模型中可能出現(xiàn)的裂縫現(xiàn)象圖7修補(bǔ)前后的圖形效果圖44海洋測(cè)繪第26卷真實(shí)性。3真實(shí)感地形實(shí)時(shí)渲染Direct3D采用了兩種方法進(jìn)行霧化處理:頂點(diǎn)311地表細(xì)節(jié)的處理霧化和