齊 敏,王 強(qiáng),韓一紅,張小溪
(西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710129)
地形是自然界中具有復(fù)雜特征的景物之一。由于具有三維真實(shí)感的地形[1-2]能夠逼真地反映真實(shí)世界,所以三維真實(shí)感地形的繪制方法一直是國(guó)內(nèi)外計(jì)算機(jī)圖形學(xué)領(lǐng)域研究的熱點(diǎn)。
目前,三維地形的生成方法大致可歸納為3種[3-4]:基于真實(shí)地形數(shù)據(jù)的地形繪制、分形地景仿真和曲面擬合地形仿真。本文提出一種基于數(shù)字地形圖并結(jié)合分形理論進(jìn)行三維真實(shí)感地形生成的方法,可以得到近似真實(shí)地形的三維地形顯示。
DEM(Digital Elevation Model)數(shù)據(jù)是用一組有序數(shù)值陣列形式表示地面高程的一種實(shí)體地面模型,其廣泛應(yīng)用于水文、農(nóng)業(yè)、軍事、氣象以及工程建設(shè)等各個(gè)方面。2009年6月30日,全球期待已久的ASTER GDEM[5](Advanced Space borne Thermal Emission and Reflection Radiometer Global Digital Elevation Model)數(shù)據(jù)由日本經(jīng)濟(jì)產(chǎn)業(yè)省MEIT(Ministry of Economy,Trade and Industry)與 NASA (National Aeronautics and Space Administration)共同發(fā)布。該數(shù)據(jù)是NASA根據(jù)Terra近十年的詳盡觀測(cè)結(jié)果,
通過ASTER的近紅外波段的垂直向下成像傳感器和后視成像傳感器獲取立體像對(duì),最終生成DEM數(shù)據(jù)。
ASTER GDEM數(shù)據(jù)可以通過國(guó)際科學(xué)數(shù)據(jù)服務(wù)平臺(tái)(http://datamirror.csdb.cn/)下載。下載的每個(gè) ASTER GDEM 數(shù)據(jù)分片為一個(gè)zip格式壓縮文件,其解壓后包括3個(gè)文件:兩個(gè)img文件(DEM.img與NUM.img)與一個(gè)jpeg圖像文件。其中 ,DEM.img 為 DEM 文 件 ,NUM.img 為 QA(Quality Assurance)質(zhì)量評(píng)價(jià)文件,jpeg文件為DEM暈渲圖縮略圖。
讀取下載的ASTER GDEM數(shù)據(jù)中的DEM.img文件如圖1所示,對(duì)照?qǐng)D2所示jpeg圖像,可以看出,jpeg圖像中的灰度信息即代表高程信息,灰度值越小,圖像越黑,表示的高程值越低;灰度值越大,圖像越亮,表示的高程值越高。
首先將jpeg地形圖進(jìn)行縮放處理,為了方便后面的使用,將圖像像素處理成(2n+1)×(2n+1)。使用雙線性內(nèi)插法進(jìn)行圖像的縮放插值。
雙線性內(nèi)插法[6]是利用周圍4個(gè)鄰點(diǎn)的灰度值在兩個(gè)方向上作線性內(nèi)插以得到待采樣點(diǎn)的灰度值,即根據(jù)待采樣點(diǎn)與相鄰點(diǎn)的距離確定相應(yīng)的權(quán)值計(jì)算出待采樣點(diǎn)的灰度值。放大后的地形圖圖像如圖3所示。
接下來對(duì)縮放后的圖像進(jìn)行灰度值-高程值映射。假設(shè)圖像灰度值范圍為[g1,g2],高程值范圍為[h1,h2],采用最簡(jiǎn)單的線性映射關(guān)系h=a×g+b,其中h表示高程值,g表示灰度值。映射關(guān)系如圖4所示。
圖1 DEM.img文件Fig.1 DEM.img file
圖2 jpeg文件Fig.2 Jpeg file
圖3 地形圖放大后圖像Fig.3 Amplified image of topographic map
圖4 灰度值-高程值映射關(guān)系Fig.4 Gray value-elevation value mapping relation
很容易得到下面關(guān)系式:
通過灰度值-高程值映射最終便得到一個(gè)將索引值(x,y)映射成高程值(Z值)的二維高度值數(shù)組。數(shù)組只需要存儲(chǔ)高度值,水平面方向的值可以通過分析數(shù)組時(shí)生成。
20世紀(jì)70年代,美籍法國(guó)科學(xué)家Mandelbrot為研究自然界中復(fù)雜、極不規(guī)則的幾何現(xiàn)象創(chuàng)立了分形幾何學(xué),分形地形建模方法大致可為泊松階躍法、傅立葉濾波法、隨機(jī)中點(diǎn)移位法、以及小波變換等幾類。其中,隨機(jī)中點(diǎn)移位法是標(biāo)準(zhǔn)的分形幾何法,算法復(fù)雜度較低而且能快速生成自然景物圖形,應(yīng)用最為廣泛。常用的隨機(jī)中點(diǎn)移位法有兩種:一種是三角形中點(diǎn)移位法,這種方法的缺點(diǎn)是在細(xì)分過程中各中點(diǎn)的坐標(biāo)值不容易確定,細(xì)分的過程也不容易控制;另一種是正方形中點(diǎn)移位法,又稱為Diamond-Square算法,它將隨機(jī)中點(diǎn)移位方法用于正方形地平面而生成地面特征,是一種較為常用的中點(diǎn)隨機(jī)移位算法。
Diamond-Square算法[7-8]由Fourniew等提出,算法具體步驟如圖5所示。
圖5 中,取一矩形,頂點(diǎn)數(shù)為(2n+1)×(2n+1),設(shè)定正方形中 4個(gè)頂點(diǎn)的初始高度值 hA、hB、hC、hD,這些點(diǎn)是遞歸細(xì)分過程的起始點(diǎn)。遞歸細(xì)分過程分為下面兩步:
第一步:Diamond步。取正方形的4個(gè)角點(diǎn),在正方形中點(diǎn)生成一個(gè)隨機(jī)值,中點(diǎn)為對(duì)角線的頂點(diǎn)。該中點(diǎn)的高度值為
式中,rand(d)為隨機(jī)變量擾動(dòng)值,其取值范圍為[-d,d];d表示在當(dāng)前迭代中的最大移位。關(guān)于隨機(jī)變量取值將在后面進(jìn)行說明。
第二步:Square步。在已知5個(gè)點(diǎn)的情況下,分別計(jì)算出原始正方形四邊中點(diǎn)的高度值。這四邊中點(diǎn)的高度值與原始四個(gè)頂點(diǎn)相關(guān)聯(lián),并且同時(shí)也要加上一個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)與第一步中的隨機(jī)數(shù)滿足同一個(gè)分布。至此,我們已經(jīng)有9個(gè)點(diǎn)的高度值已知了,并且原始正方形被分為了4個(gè)小正方形。
由此看見,采用Diamond-Square算法將一個(gè)正方形經(jīng)過單獨(dú)一次細(xì)分過程,可得到4個(gè)正方形,第二次細(xì)分過程可得到16個(gè)正方形,第n次細(xì)分得到的正方形數(shù)目為22n。因此,采用Diamond-Square算法對(duì)地形生成速度很快,而且實(shí)現(xiàn)非常容易。
圖5 Diamond-Square算法原理Fig.5 Diamond-Square algorithm principle
網(wǎng)格最終高度Z由受控制高度影響的隨機(jī)中點(diǎn)移位算法來計(jì)算。從高斯分布中選取隨機(jī)值rand(d),其中平均值u和標(biāo)準(zhǔn)偏差σ是控制高度的函數(shù),這里的控制高度即是上面灰度值-高程值映射過程得到的高程值。
例如對(duì)于圖 5(b)中的 E 點(diǎn),選取平均值 μE=ZE-(ZB+ZC)/2,標(biāo)準(zhǔn)偏差σE=h|μE|,最終便可得到E點(diǎn)的網(wǎng)格最終高度值。在上面式子中,ZE、ZB、ZC為對(duì)應(yīng)點(diǎn)處的地面控制高度,h為比例系數(shù),取值范圍 0<h<1。
在仿真實(shí)驗(yàn)中,硬件環(huán)境為,AMD AthlonII X2 250 CPU 3.0GHz 1G內(nèi)存,ATI Radeon HD 4350;軟件環(huán)境為Windows XP下VC++2005以及三維圖形渲染引擎OSG。
OSG(OpenSceneGraph)是一套基于工業(yè)標(biāo)準(zhǔn)OpenGL構(gòu)建的開源視景仿真開發(fā)工具包,主要為圖形圖像應(yīng)用程序的開發(fā)提供場(chǎng)景管理與圖形渲染優(yōu)化的功能。它封裝了OpenGL大部分的函數(shù)功能.
在地形繪制過程中,通過紋理映射技術(shù)將高度數(shù)據(jù)轉(zhuǎn)化為地形圖形。從本質(zhì)上說紋理是物體表面的細(xì)小結(jié)構(gòu),它可以是光滑表面的花紋、圖案,也可以是物體表面的三維結(jié)構(gòu),還可以是粗糙的表面。紋理映射是把指定紋理映射到三維物體表面上的技術(shù),形成最終的圖像。
三維地形的真實(shí)感顯示仿真結(jié)果如圖6、7所示。
圖6 地形網(wǎng)格Fig.6 Terrain grid
圖7 地形紋理映射效果Fig.7 Terrain texture mapping
文中采用ASTER GDEM數(shù)字地形圖與分形理論Diamond-Square算法相結(jié)合對(duì)三維地形進(jìn)行仿真。首先通過數(shù)字地形圖灰度值-高程值映射來得到圖像像素對(duì)應(yīng)的高程值,然后利用Diamond-Square算法來產(chǎn)生逼真程度很高的地形,最終通過可視化技術(shù)生成高度真實(shí)感的三維地形圖形。仿真實(shí)驗(yàn)表明,本文提出的方法能有效地生成具有真實(shí)感的三維地形,進(jìn)一步工作將研究如何使三維地形圖顯示出更多的地貌細(xì)節(jié)信息與自然景物,就能更加逼真地模擬地形自然環(huán)境了,將更加有研究意義和研究?jī)r(jià)值。
[1]朱梅,陳健偉.基于VR的虛擬場(chǎng)景生成算法研究[J].電子測(cè)量技術(shù),2011,10(6):45-47.ZHU Mei,CHEN Jian-wei.Research ofvirtualscene generation algorithm based on VR[J].Electronic Measurement Technology,2011,10(6):45-47.
[2]蔣一,魏駿.虛擬現(xiàn)實(shí)技術(shù)及其在軍事領(lǐng)域的應(yīng)用[J].國(guó)外電子測(cè)量技術(shù),2007(1):43-45.JIANG Yi,WEI Jun.Virtual reality technology and its application in the field of military[J].Foreign Electronic Measurement Technology,2007(1):43-45.
[3]梁俊,王琪,劉坤良,等.基于隨機(jī)中點(diǎn)位移法的三維地形模擬[J].計(jì)算機(jī)仿真,2005,22(1):213-215.LIANG Jun,WANG Qi,LIU Kun-liang,et al.3D terrain simulation based on the method of random mid-point displacement[J].Computer Simulation,2005,22(1):213-215.
[4]周煒,董福安,吉楠.基于分形和高度圖控制的三維地形生成[J].電光與控制, 2007,14(4):66-69.ZHOU Wei,DONG Fu-an,JI Nan.3D terrain generation based on fractal theory and elevation map control[J].Electronics Optics and Control, 2007,14(4):66-69.
[5]康曉偉,馮鐘葵.ASTER GDEM數(shù)據(jù)介紹與程序讀取[J].遙感應(yīng)用,2011(6):69-72.KANG Xiao-wei,F(xiàn)ENG Zhong-kui.An introduction to ASTER GDEM and procedure reading[J].Remote Sensing Application,2011(6):69-72.
[6]尤玉虎,周孝寬.數(shù)字圖像最佳插值算法研究[J].中國(guó)空間科學(xué)技術(shù),2005(3):14-18.YOU Yu-hu,ZHOU Xiao-kuan.Research of optimal interpolation algorithm for digital image[J].Chinese Space Science and Technology,2005(3):14-18.
[7]田雨.對(duì)分形算法中遞歸法的研究[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2007,44(5):990-994.TIAN Yu.Research on recursion in fractal algorithm[J].Journal of Sichuan University:Natural Science Edition,2007,44(5):990-994.
[8]馮曉峰,王樹宗.基于分形的真實(shí)感地形的生成研究[J].微計(jì)算機(jī)信息,2007,23(3):288-290.FENG Xiao-feng,WANG Shu-zong.Study of real sense terrain generation based on fractal[J]. Microcomputer Information,2007,23(3):288-290.