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