田明銀,蘭一麟濤,錢 偉
(北方民族大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,寧夏 銀川 750000)
基于分形算法的三維地形可視化應(yīng)用
田明銀,蘭一麟濤,錢 偉
(北方民族大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,寧夏 銀川750000)
針對三維地形可視化實(shí)際應(yīng)用中存在的數(shù)據(jù)獲取困難、處理方法復(fù)雜、模型轉(zhuǎn)換率低等問題,本文基于三維分形地形生成理論,采用提取某一地形區(qū)域的Google Earth衛(wèi)星遙感電子地圖高程數(shù)據(jù)來生成數(shù)字高程模型的方法,通過OpenGL三維圖形繪制技術(shù)實(shí)現(xiàn)三維地形可視化。
三維地形;分形算法;OpenGL;可視化
三維地形相關(guān)的技術(shù)在城市設(shè)計(jì)規(guī)劃、資源調(diào)配、環(huán)境勘探與偵查、災(zāi)害預(yù)測、游戲影視娛樂、路線導(dǎo)航等領(lǐng)域的應(yīng)用越來越廣泛,如Google 3D實(shí)景地圖、火星表面勘測等基于三維地形的實(shí)際應(yīng)用。由于常規(guī)的獲取地形數(shù)據(jù)的方式復(fù)雜且數(shù)據(jù)量極大,不易于操作和處理,文中以Google Earth衛(wèi)星遙感地圖數(shù)據(jù)作為數(shù)據(jù)提取的數(shù)據(jù)源,簡化了地形數(shù)據(jù)采集的步驟和降低了三維地形一般性研究的難度,同時(shí)以DEM數(shù)字高程模型作為三維空間地形的數(shù)據(jù)模型,然后以分形地形理論為基礎(chǔ)建立了分形地形模型,最后通過OpenGL圖形繪制技術(shù)給出了基于某一實(shí)際地形的三維地形可視化實(shí)例。
由于自然界的許多物體都具有自相似性,現(xiàn)實(shí)世界中許多物體都無法由觀測的刻度來描述。在分形地形理論的發(fā)展過程中,曼德勃羅(Mandelbrot)[1]曾提出了一個(gè)想法:用實(shí)體自身的自相似特征和增量特征來刻畫出一個(gè)實(shí)體的自然形態(tài)?,F(xiàn)實(shí)世界中的地形從物理形態(tài)構(gòu)造來看類似于分形的平面,為了更好的用分形的思想來描述地形特征,相關(guān)學(xué)者們對分形理論進(jìn)行了大量深入的研究。Sayes和Thomas[2]研究分析了大量的地形數(shù)據(jù),并得出了地形在自然形態(tài)下都是不平穩(wěn)的結(jié)論。Berry和Hannayca[3]在大量地形研究理論的基礎(chǔ)上建立了自然地形模型,通過描述地形自然走向和借助地形剖面來刻畫地形空間分布來表達(dá)自然地形的一般特征。下面給出了描述地形的一般化公式[4]:
在上面給出的公式(1)(2)中,X(x)表示地形高程值,E[]代表統(tǒng)計(jì)期望,H和σ為刻畫地形自然相似變化的參數(shù)因子[5]。公式(2)為地形剖面功率公式。上述兩式在地形學(xué)領(lǐng)域應(yīng)用非常廣泛,是地形模型表達(dá)的一個(gè)經(jīng)典模型[6]。曼德勃羅等人進(jìn)一步研究了布朗運(yùn)動,并基于分形思想將其改進(jìn)形成了現(xiàn)在常見的分形布朗運(yùn)動模型。
基于分形布朗運(yùn)動(Fractal Brown Motion,F(xiàn)BM)的分形模型可以有效的對實(shí)際地形進(jìn)行建模。下面是分形布朗運(yùn)動(FBM)[1]的定義:
FBM是用來描述特定的統(tǒng)計(jì)結(jié)果集所形成的概率空間的過程,它X:[0,∞]→R;且滿足如下條件:
1)以概率1,X(0)=0。即由0開始,X(t)是以t為自變量的連續(xù)函數(shù);
2)對任何t≥0,h>0,X(x+h)-X(t)服從如下分布N(0,h2H)
基于FBM的分形模型可以有效的對實(shí)際地形進(jìn)行建模。目前,構(gòu)建分形FBM模型的方法一般采用隨機(jī)中點(diǎn)位移法,該方法根據(jù)描述地形時(shí)所采用的對象單元不一樣又分為網(wǎng)格法和三角形法。通常在構(gòu)建FBM地形模型時(shí),我們要對實(shí)際地形進(jìn)行一個(gè)近似模擬的處理過程。在這里,我們選用目前模擬效果較好的“Diamond-Square”算法。
“Diamond-Square”算法的思想[7]:首先從一個(gè)尺寸為1的空二維數(shù)組開始,將4個(gè)角點(diǎn)的高程初始化,以(2n+1)2個(gè)網(wǎng)格為例(如圖1(a)所示),依次進(jìn)行如下的遞歸分化[8]:
1)diamond計(jì)算:選定4個(gè)點(diǎn)生成一菱形,取其兩對角線交點(diǎn)為中點(diǎn)并賦予一高程值。中點(diǎn)高程值有4個(gè)角點(diǎn)的算術(shù)平均值加上一個(gè)隨機(jī)位移量計(jì)算得到。這樣就形成了一個(gè)棱形網(wǎng)格。如圖1(b)所示,新值為黑色,已經(jīng)存在的點(diǎn)顯示為白色。
2)square計(jì)算:選定4個(gè)點(diǎn)生成的一正方形,取其對角交點(diǎn)為中點(diǎn)并賦予平均高程值。每條邊的中點(diǎn)值為計(jì)算得到的角點(diǎn)高程的算術(shù)平均值與diamond計(jì)算給出的隨機(jī)量之和。這樣又得到了一個(gè)正方形格網(wǎng)。如圖1(c),新值為黑色,已經(jīng)存在的值為白色。接著重復(fù)diamond計(jì)算和square計(jì)算n次(這里為了便于表示,取n=2),直到得到22+1個(gè)網(wǎng)格。
圖1 網(wǎng)格生成過程
下面是基于迭代策略的”Diamond-Square”算法步驟:
通過Google Earth提取某一地形區(qū)域的等高點(diǎn)(線)數(shù)據(jù)和高程數(shù)值生成DEM,實(shí)現(xiàn)本文討論的分形地形模型可視化。實(shí)現(xiàn)流程如圖2所示。
圖2 流程圖
3.1獲取DEM數(shù)據(jù)
首先,在Google Earth里輸入賀蘭山某一點(diǎn)地理坐標(biāo)(106.030885E,38.974293N),找到要獲取的地形區(qū)域,如圖3所示。
選取要獲取的高程數(shù)據(jù)的地形,設(shè)定提取等高點(diǎn)(線)數(shù)據(jù)區(qū)域的地標(biāo),然后選擇高程信息提取,設(shè)置采樣點(diǎn)間隔為60,輸出坐標(biāo)為WGS84,如圖4所示。
圖3 Google Earth衛(wèi)星地圖
選擇多邊形工具確定提取高程數(shù)據(jù)區(qū)域,提取高程數(shù)據(jù),如圖5所示。
得到等高數(shù)據(jù)和高程值,如圖6所示。
下面是導(dǎo)出的DEM數(shù)字高程數(shù)據(jù),如圖7所示。
圖4 等高線采樣
圖5 多邊形高程數(shù)據(jù)采樣
圖6 等高線分布圖
3.2實(shí)現(xiàn)結(jié)果
根據(jù)上面的實(shí)現(xiàn)流程,基于Windows系統(tǒng)利用VC++6.0工具和OpenGL圖形庫構(gòu)建Win32程序,最終實(shí)現(xiàn)效果如圖8所示。
如何基于分形技術(shù)生成三維地形一直是三維可視化技術(shù)研究的熱點(diǎn),建立有效的三維模型和提高生成地形的三維仿真效果是從事三維繪制技術(shù)研究人員的主要工作。本文著重研究了如何基于分形技術(shù)實(shí)現(xiàn)對真實(shí)地形的模擬仿真,在第一節(jié)和第二節(jié)中討論了三維地形理論模型和算法;在第三節(jié)里討論了如何建立三維分形模型;第四節(jié)以前三節(jié)的分形地形模型為基礎(chǔ),敘述了從如何獲取和處理實(shí)際地形數(shù)據(jù)到設(shè)計(jì)地形模型以及基于該模型的三維實(shí)時(shí)地形生成的整個(gè)流程。全文的討論研究內(nèi)容及成果有如下幾個(gè)方面:
1)分形布朗運(yùn)動模型是目前分形技術(shù)中常用的地形生成模型,通過基于該模型的算法處理地形數(shù)據(jù)能夠以較高的仿真度來模擬真實(shí)地形。
2)DEM數(shù)字高程模型是一種實(shí)用性很好的實(shí)體地形模型,它能夠描述常見的各種地形特征,通過提取真實(shí)地形的相關(guān)數(shù)據(jù)構(gòu)建DEM數(shù)字高程模型是提高三維地形生成真實(shí)感的有效方法。
3)通過實(shí)現(xiàn)一個(gè)簡單的三維地形生成程序,展示了如何提取地形數(shù)據(jù),數(shù)據(jù)處理,三維建模以及OpenGL編程實(shí)現(xiàn)一個(gè)三維可視化系統(tǒng)等的完整過程,為進(jìn)一步的研究做了一些準(zhǔn)備。
圖7 數(shù)字高程數(shù)據(jù)
圖8 實(shí)現(xiàn)效果圖
除此之外,有關(guān)于三維分形地形的研究還需要進(jìn)一步的探討。在本文中討論和分析了如何基于分形地形模型對實(shí)
際地形建模并實(shí)現(xiàn)可視化,但分形地形模型還存在一定的局限性。常見的問題是除了表面可見地形以外,如何處理像山谷、河網(wǎng)等侵蝕地貌[4];其次是分形地形模型是基于自然地形自相似性特點(diǎn)的模型,無法對突兀性地形進(jìn)行有效的擬合仿真。在可視化實(shí)現(xiàn)的過程中也存在一些問題,如當(dāng)選取地形范圍較大且仿真度要求較高時(shí)如何處理紋理映射,在處理不同地形時(shí)如何自然過渡也是下一步繼續(xù)研究的重點(diǎn)內(nèi)容。當(dāng)然,關(guān)于分形地形的研究仍然處于發(fā)展和完善的階段,未來三維可視化的應(yīng)用為相關(guān)領(lǐng)域帶來挑戰(zhàn)的同時(shí)也帶來了無限的活力。
[1]MandelbrotB B.The fractal geometry of nature[M].San Francisco:Freeman,1982.
[2]Sayles R S,Thomas T R.Surface topography as a nonstationary random process[J].Nature,1978(271):431-434.
[3]Berry M V,Hannay T R.Topography of random surface[J]. Nature,1978:273.
[4]陶闖,林宗堅(jiān),盧健.分形地形模擬[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),1996(3):4-5.
[5]陸萍.虛擬地景生成算法研究和仿真平臺開發(fā) [D].南京:南京航空航天大學(xué),2008.
[6]李宏達(dá),葉正麟,王小平.分形插值曲面[J].計(jì)算機(jī)輔助設(shè)計(jì)與計(jì)算機(jī)圖形學(xué)學(xué)報(bào),2002(4):1-4.
[7]劉慶元,易柳城,劉莉.基于diamond-square算法的數(shù)字地形模型構(gòu)建與三維可視化研究[J].測繪工程,2014:6-7.
[8]S Wasmus,A Kuver.Methanol oxidation and direct methanol fuel cells:a selective review[J].J Electroanal Chem,1999,461 (122):14-31.
The application of 3D terrain visualization based on fractal algorithm
TIAN Ming-yin,LAN Yi-lin-tao,QIAN Wei
(Institute of Mathematics and Information Science,Beifang University of Nationalities,Yinchuan 750000,China)
Targeted at such existing problems of difficulty in data acquisition,complex processing method and low model conversion rate in the actual practice of 3D terrain visualization and based on the theory of 3D fractal terrain generation,this paper extracts the e-map elevation data of Google Earth Satellite Remote Sensing to generate the digital elevation model and uses OpenGL 3D graphics rendering technology to realize 3D terrain visualization.
3D terrain;fractal algorithm;OpenGL;visualization
TN0
A
1674-6236(2016)14-0020-04
2015-06-01稿件編號:201506005
國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃(201411407041)
田明銀(1992—),男,湖南龍山人。研究方向:圖像處理。