石靖++張素偉
摘要:本文以在給定環(huán)境下的地貌演繹生成為主要研究目標(biāo),對.NET環(huán)境下的OpenGL庫開發(fā)三維場景技巧進(jìn)行闡述,并分析基于OpenGL環(huán)境下的三維地貌演繹的設(shè)計(jì)思路。通過可靠的數(shù)學(xué)模型,將地貌演繹結(jié)果表現(xiàn)出來,以此提高地貌演繹的真實(shí)性。
關(guān)鍵詞:OpenGL,地貌演繹,三維場景,.Net,C#
隨著北斗系統(tǒng)在中國近年來的全面推廣,已經(jīng)逐漸成為對中國境內(nèi)定位導(dǎo)航的新生力量。但是北斗定位系統(tǒng)尚處于起步階段,對中國地形地貌數(shù)據(jù)采集量還較少,不便于對復(fù)雜地貌環(huán)境下的地位導(dǎo)航。基于這種現(xiàn)象,北斗系統(tǒng)需要利用少量采集的現(xiàn)有數(shù)據(jù),并通過科學(xué)有效的數(shù)學(xué)模型,對一定時(shí)間內(nèi)一定區(qū)域內(nèi)的地貌演繹做出正確預(yù)測,并通過可視化的圖形信息表示出來。
一、系統(tǒng)設(shè)計(jì)
要使得地貌演繹的數(shù)據(jù)真實(shí)可靠,并且便于人觀察操作是地貌演繹過程中的主題。所以,通過分析影響演繹的因素,構(gòu)建合理的地貌演繹數(shù)學(xué)模型,使用可視化的圖形信息表示是在進(jìn)行地貌演繹時(shí)亟待研究與解決的重要問題。
(一)系統(tǒng)框架分析
地形地貌的演繹生成過程受到多方面的影響。影響我國地貌發(fā)育的內(nèi)外力因素,主要有地質(zhì)構(gòu)造因素、氣候因素、地表組成物質(zhì)因素、人類活動(dòng)因素等[1]。在本文中著重討論關(guān)于非人為影響下的地貌形成演繹過程,通過對地質(zhì)構(gòu)造、氣候、降雨量等因素的控制,給定一段時(shí)間進(jìn)行演繹,得出地貌變化的結(jié)果。
在得到地貌結(jié)果后,需要通過可視化的形式表現(xiàn)出來,為了使地貌信息的所有細(xì)節(jié)都能最大程度的保留以及便于觀察等因素,本文采用了OpenGL庫對構(gòu)成的圖形進(jìn)行了表示。OpenGL具有跨平臺(tái)等多種優(yōu)點(diǎn),且相較于Direct并沒有聲音庫等對本文研究結(jié)果無用的庫,因此OpenGL更加小巧靈活。
在生成地貌圖形后,為了方便人員對影響地貌信息的因素做調(diào)整比較,因此需要一個(gè)更人性化的交互設(shè)計(jì),因?yàn)檎麄€(gè)系統(tǒng)運(yùn)行在Windows操作系統(tǒng)下,因此選用.NET開發(fā)平臺(tái)對整個(gè)系統(tǒng)進(jìn)行開發(fā)。.NET具有大量優(yōu)秀的控件,方便設(shè)計(jì)人性化的交互界面。
(二)系統(tǒng)框架圖
結(jié)合設(shè)計(jì)過程中的其他問題,最后設(shè)計(jì)的系統(tǒng)框架圖如圖一所示
圖一
二、程序設(shè)計(jì)
在.NET平臺(tái)下最好的編程語言是C#,但是OpenGL并沒有對C#進(jìn)行接口封裝,因此需要選用其他第三方對OpenGL封裝的API,通過查找比較,最終選擇了SharpGL庫,SharpGL庫將OpenGL封裝為一個(gè)控件,并C#寫了所有OpenGL接口,開發(fā)起來較為方便[2]。
在程序中采用了點(diǎn)擊鼠標(biāo)左鍵并移動(dòng)鼠標(biāo)可旋轉(zhuǎn)生成的地形圖,便于360°觀察整個(gè)地形地貌;采用滾動(dòng)鼠標(biāo)滾輪縮放地形圖,便于觀察整個(gè)地形或觀察細(xì)微地貌信息;采用WASD移動(dòng)地形圖,結(jié)合上述兩種交互方式,方便對地形地貌的各個(gè)地方進(jìn)行觀察分析[3]。
在程序中可以對土壤屬性、天氣、降雨量、初始植被量、演繹時(shí)間等屬性進(jìn)行交互操作,通過除演繹時(shí)間外的其他屬性控制演繹過程中的影響因子,通過控制演繹時(shí)間來生成最終的演繹結(jié)果數(shù)據(jù)。
生成的演繹結(jié)果數(shù)據(jù)分為兩類,第一類為在該地形形成的湖泊量,第二類為在影響因子的作用下,該地域植被的生長量,通過這兩個(gè)量在OpenGL中畫出相對應(yīng)的湖泊和植被。其中湖泊是畫出一個(gè)平行于地平面的一個(gè)面,并根據(jù)湖泊量對該平面進(jìn)行平移,使湖泊面升高或降低;植被的生長是由植被量通過查表選出與之最匹配的紋理貼圖,并將該貼圖貼到地形圖中。
在地形地貌圖中增加了天空盒部分,使整個(gè)地形地貌顯得更真實(shí)。
四、總結(jié)
本文分析研究了.NET環(huán)境下,基于OpenGL庫的三維可視化真實(shí)地貌演繹生成算法設(shè)計(jì)。設(shè)置影響因素與演繹時(shí)間后,通過科學(xué)有效的數(shù)學(xué)模型計(jì)算出演繹后的數(shù)據(jù),并通過演繹后的數(shù)據(jù),結(jié)合OpenGL繪制出合理的三維地形地貌圖形。
參考文獻(xiàn):
[1]王壯志,王巖.中國地貌形成過程[J].西江月,2014,(第8期).
[2] http://www.codeproject.com/KB/openGL/sharpgl.aspxendprint