《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于OpenGL的三維地形可視化的研究與實現

基于OpenGL的三維地形可視化的研究與實現

2009-09-21
作者:劉 清 邢 航 黃 珍

  摘? 要: 針對三維地形可視化開發中的幾個關鍵技術進行了詳細的研究和討論,并以OpenGL開發語言為基礎,分析了實現三維地形地貌可視化的基本步驟。

  關鍵詞: 三維地形? 投影變換? 紋理映射? 動態顯示

?

  隨著計算機及圖形圖像技術的發展,地形可視化的應用越來越廣泛。三維地形可視化是研究數字地形模型(Digital Terrain Model,DTM)或數字高程域(Digital Height Field)中顯示、簡化、仿真等內容的學科。常用的三維開發語言主要有OpenGL、Direct3D、VRML等。由于OpenGL與3DS、3Dmax相比具有可實時交互操作的優點,所以更適合于空間信息的三維構建,因此它的應用最為廣泛。本文介紹在某一實時監控項目的開發中,基于OpenGL實現的三維地形地貌可視化的開發技術和實現方法。

1? 三維地形建模

  三維地形的建模是三維地形可視化的核心內容。本文首先探討了三維地形可視化中地形建模的方法,然后討論了三維可視化過程中的幾個關鍵技術。

1.1 數字地面模型

  數字地面模型DTM是在一定的地域范圍內按一定的規則獲取和記錄一些點的高程而形成的用來描述地形的數字模型[2]。常用的地面取點方式有二種:一種是非等間隔取點,即根據地面的變化率決定取點的位置和疏密。在高度變化較緩的區域取點相對較少,反之較多;另一種是等間隔取點,即取點的行列間隔是固定不變的。在數據存儲上,前者節約空間且獲取的地形信息較多,但數據結構復雜,運算處理困難;后者雖然數據結構簡單,特別是每個點有隱含坐標,使運算處理較為容易、編程實現比較方便,但容易丟失一些地形信息,有時存在冗余數據。

  DTM數據實質上是空間離散點的集合,生成三維地形的過程就是用這些離散點逼近地形曲面的過程。目前三維地形模型大多采用數字地面模型生成。本文中DTM數據由等間隔取點所得到的高程值構成。

1.2 三維地形建模方法

  計算機圖形學中,利用多邊形構造曲面時應考慮以下因素:

  (1)保持多邊形的方向一致性(通常每個多邊形均取逆時針方向)。

  (2)盡量選用三角形來逼近,這樣可以保證多邊形上的所有點共面。

  (3)避免構造過程中出現T型點,因為T型點將導致繪制時出現裂痕。解決辦法是增加一條指向T型點的邊。

  (4)避免使用狹長三角形,應盡量選用各邊長度接近的三角型。狹長三角形會使繪制的結果顏色變化太尖銳。

  (5)要正確處理好圖像質量和繪制速度的矛盾,因此應選用適當的多邊形數目。

  由于OpenGL只能處理凸多邊形,加上對上述因素的考慮,本文在設計開發過程中主要采用把整個地形曲面化分為多個小的三角曲面,然后由這些三角曲面拼接成整個地形曲面的方法。拼接方法如圖1所示。

?

?

  為了達到地形曲面的光滑,應使各三角曲面拼接處的法向量不產生突變。本方法的重點在于求各點的法向量。法向量同時還關系到每個頂點所能獲得的光照量,從而影響整個場景的視覺效果。OpenGL本身并未提供計算法向量的函數,計算法向量的工作必須自己完成,這樣就具有更大的靈活性。本文采用最常用的平均平面法向量法。

  在三維視圖中,每一個面都有二個方向,因此計算三角面法向量時必須按相同的順序(順時針或逆時針方向)從三角面取二條有向邊,計算其叉積,然后將該叉積進行單位化,就得到該三角面的法向量。而求每個頂點的法向量時將頂點周圍六個三角面的法向量的平均值作為該頂點的法向量即可。在OpenGL中再通過插值,可求得三角曲面上每一點的法相量,從而獲得一塊光滑的三角曲面。

2? 三維地形的可視化

  在OpenGL中實現三維地形可視化的基本過程如圖2所示。其中,參數設置主要包括光源性質、光源方位、顏色模式、明暗處理方式、紋理映射方式的設置等。這些參數設置都可以通過OpenGL的相關函數來實現。視口變換就是將三維空間坐標映射為計算機屏幕上的二維平面坐標,用glViewport()實現。以下就其中的光照計算、投影變換和紋理映射技術進行重點分析。

?

?

2.1 光照計算

  根據所求的頂點法向量,可以求出各個頂點處的光強值。假設地形表面為一個漫反射體,光源為無窮遠處的點光源,根據朗伯余弦定理,任一地形點的光強為:

  

  其中:L為點光源單位入射向量;N為所求點的法線向量;I0、Ie分別為環境光和入射光的光強;K0、Kd為環境和入射光的反射系數。

2.2 投影變換

  在OpenGL中,投影變換分為正交投影和透視投影二種。二種投影變換的顯著區別是視景體的不同。在透視投影中(如圖3),視景體是一個棱錐的平截臺體,即為一個被平行于地面的平面裁掉頂端的棱錐。同樣一個物體,距離視點較近比遠離視點時在視景體中占據更大的比例,因此在平截臺體的粗端將顯得大一些。由于這種投影方法類似于人眼的視覺機制,通常用于強調真實感的場合,所以在三維地形可視化中采用透視投影。

  圖3中近平面P1和遠平面P2為矩形且互相平行。視點到近平面的距離為n,到遠平面的距離為f。設近平面左下角點a1的三維空間坐標為(l,b,n),右上角點c1的三維空間坐標為(r,t,n),則透視投影變換可用下列矩陣P表示:

  

?

?

  透視投影變換實際上就是用矩陣P乘三維空間點的坐標運算。

2.3 紋理映射

  紋理映射是把紋理影像“貼”到由DTM數據所構成的三維模型上,它是建立具有真實感的三維地形地貌的重要手段。紋理映射的關鍵是實現影像與DTM之間的正確套合,使每個DTM網格點與其所在的影像位置一一對應,保證紋理在變換時與所附著的曲面保持適當的關系。對于原始影像,可以根據成像時的幾何關系,利用共線方程解算出每一個DTM網格點所對應的像坐標,將其作為紋理映射時的紋理坐標依據。

  紋理映射有二個問題需要重點考慮。①內存與速度之間的矛盾。由于加入了圖像紋理,使得著色算法變得復雜化,明顯影響了三維地形的顯示速度。如果在三維地形多分辨率模型中加入多分辨率的紋理,即將圖像分成多級分辨率,然后根據視點的變化來選擇其中的分辨率,這就更增加了內存與速度之間的矛盾。②大尺寸圖像的疊加問題。通常軟件系統(如OpenGL)只支持1024×1024的圖像尺寸。如果有一個高分辨率的圖像,圖像尺寸是4096×4096,則需要將大圖像分成較小的尺寸(如512×512),同時將地形也相應分成較小的地形塊,將圖像塊與地形塊疊加后,再將它們拼接起來。為了防止拼接縫的產生,在設計分塊時讓塊與塊之間保留少量的重疊。紋理映射時,OpenGL會自動根據周圍像點的像素值來決定拼接處像點的像素值,從而避免拼接縫的產生。OpenGL中紋理映射的基本操作步驟如下:

  (1)定義紋理。用glTexImage2D()函數說明所映射的紋理內容,其中包括紋理數據的指針、紋理的大小、紋理的類別(灰度或色彩)等。簡單的紋理是一個圖像。

  (2)紋理控制。用來說明紋理以何種方式映射到三維模型表面上,OpenGL提供的函數為glTexParameter*()。可以把紋理作為象素的最終顏色,用紋理覆蓋原有的象素段;也可以把光照與紋理后的效果結合起來,調整或放大象素段的顏色。另外也可以用基于紋理值的一個固定顏色與象素段顏色混合。

  (3)使用紋理映射。在繪制場景前,先調用glEnable(GL_TEXTURE_1D)或glEnable(GL_TEXTURE_2D)函數,允許使用一維和二維紋理映射。在紋理映射過程中,可以用紋理來調整三維模型的顏色或將紋理與三維模型原來的顏色進行融合,其調整函數為glTexEnv*()。

  (4)繪制場景。定義三維模型頂點的紋理坐標與幾何坐標。幾何坐標決定了頂點在屏幕上的繪制位置,紋理坐標決定紋理圖像中哪一個紋理單元賦予該頂點,其調整函數為glTexCoord*()。在曲面上只繪制一份紋理圖案,則四個角坐標分別為(0,0)、(1,0)、(0,1)、(1,1)。

  需要注意的是:紋理映射只能在RGBA模式下使用,不適用于顏色索引模式。計算紋理坐標必須準確,否則將導致紋理變形。

3? 三維地形實時動態顯示

  三維地形僅僅靜態顯示還不夠,它需要交互式地實時動態顯示。除了必要的硬件之外,OpenGL所特有的顯示列表和雙緩存機制也為實現三維景觀的實時動態提供了有力的保證。

  顯示列表是OpenGL為了提高程序的運行效率而引入的“批處理”技術,是預先存儲的、用于稍后執行的一組OpenGL命令序列。激活一個顯示列表后,就可按照顯示列表中預先排好的次序執行其存儲的命令。顯示列表是不可修改的,一旦建立,OpenGL就將其處理成適合于圖形硬件的格式,而且可以避免在繪圖過程中因主機計算量過大而影響圖形生成的速度,從而提高了效率。雙緩存技術提供前后二個緩存,在顯示前臺緩存內容的一幀圖像時,后臺正在繪制下一幀的圖像;后臺繪制完成后,交換前后臺緩存,不斷地循環,實現地形的實時動態顯示。OpenGL中雙緩存是通過調用auxSwapBuffers()函數實現的。

  地形實時動態顯示一般有二種方式:一種是視點固定、目標移動,目標本身的變化包括目標的平移、旋轉和縮放等。這種顯示方式較容易實現,而且平行投影和透視投影二種投影方式都可以采用。另一種是目標固定、視點移動。這種顯示方式實現起來較復雜,因為目標固定、視點沿路徑運動,因此必須采用透視投影才能達到仿真效果。本文中三維地形的動態顯示即采用第二種方式。

4? 結束語

  根據上文介紹的技術,在CPU為PⅢ800、內存為128MB、Windows2000環境下,以VC6.0為開發平臺、OpenGL為工具,進行了水下三維地形的動態顯示仿真。所繪制的某一水下地形顯示地形地貌效果良好。本文的研究還很基礎,對于三維數據的采集、壓縮、插值、建模、顯示速度等方面還有許多問題有待進一步研究。

?

參考文獻

1? 王永明.地形可視化.中國圖像圖形學報.2000;(6)

2? 郭文普,孫繼銀.視景生成中的幾個關鍵技術.系統仿真學報,2001;(11)

3? 吳剛.ZZC02雷達裝甲車系統軟件的研制.成都:電子科技大學碩士學位論文,2001

4? 柴小文,王金巖,田翼.三維數字地形圖生成技術研究.航空電子技術,2002;(12)

5? 戴晨光,朱述龍.利用OpenGL實現三維地形的快速動態顯示.測繪通報.1998;(6)

6? 高武俊,張繼賢,張永紅.基于OpenGL的三維地形可視化研究.測繪通報,2002(增刊)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          在线观看亚洲视频啊啊啊啊| 久久精品国产精品| 亚洲欧美激情视频在线观看一区二区三区| 一本久久知道综合久久| 娇妻被交换粗又大又硬视频欧美| 一区二区三区视频在线观看| 国产精品欧美日韩久久| 国产精品日韩在线观看| 亚洲伦理网站| 国产精品久久久久久亚洲调教| 亚洲黄色影院| 欧美视频免费看| 午夜视频在线观看一区二区三区| 久久一区二区三区四区| 亚洲人成毛片在线播放女女| 欧美日韩中文字幕综合视频| 欧美成人黑人xx视频免费观看| 欧美日韩91| 欧美日韩一区二区三区四区在线观看| 国模私拍一区二区三区| 国产精品色午夜在线观看| 亚洲福利精品| 这里只有精品视频在线| 欧美一区二区三区四区夜夜大片| 在线观看免费视频综合| 欧美一区二区三区精品电影| 国产精品v欧美精品∨日韩| 欧美日韩精品一区二区三区| 亚洲欧美日本另类| 亚洲成人在线网| 国内外成人免费激情在线视频| 欧美精品一区二区三区在线播放| 榴莲视频成人在线观看| 欧美区在线播放| 日韩一级精品视频在线观看| 国产亚洲高清视频| 玖玖玖免费嫩草在线影院一区| 亚洲精品美女免费| 国产一区二区三区在线观看视频| 亚洲日本在线观看| 99视频热这里只有精品免费| a91a精品视频在线观看| 国产日韩一区二区三区在线播放| 欧美日本韩国在线| 一本色道婷婷久久欧美| 亚洲欧洲另类国产综合| 欧美日韩另类综合| 在线亚洲精品福利网址导航| 国产女主播一区| 一区二区三区不卡视频在线观看| 午夜精品一区二区三区在线播放| 午夜精品福利视频| 国产精品亚洲综合色区韩国| 亚洲伊人久久综合| 99riav久久精品riav| 99综合电影在线视频| 欧美综合77777色婷婷| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲综合色激情五月| 亚洲天堂久久| 亚洲美女中出| 麻豆91精品| 老司机精品视频一区二区三区| 禁断一区二区三区在线| 亚洲视频一起| 欧美日韩国产麻豆| 亚洲一区视频在线| 老司机精品视频一区二区三区| 在线观看不卡| 99综合在线| 欧美日韩一二三区| 欧美69wwwcom| 久久久在线视频| 亚洲午夜精品一区二区| 亚洲精选一区二区| 欧美中文字幕在线观看| 狂野欧美性猛交xxxx巴西| 久久婷婷国产综合国色天香| 国产伦精品一区二区三区视频黑人| 国产精品一区二区三区四区五区| 日韩一二三区视频| 在线亚洲一区二区| 久久久久国产一区二区| 亚洲黄色影院| 在线观看亚洲专区| 99re66热这里只有精品3直播| 久久亚洲精品一区| 久久久久国产一区二区| 久久人人97超碰人人澡爱香蕉| 亚洲国产精品毛片| 国产一区亚洲一区| 亚洲尤物在线视频观看| 亚洲国产成人久久| 欧美在线关看| 在线成人激情黄色| 99视频在线精品国自产拍免费观看| 欧美日韩一区视频| 欧美自拍丝袜亚洲| 欧美成人免费网站| 久久久亚洲精品一区二区三区| 亚洲免费观看高清完整版在线观看熊| 亚洲国产1区| 国产综合视频| 亚洲午夜国产一区99re久久| 久久久久高清| 99热这里只有精品8| 日韩一级欧洲| 亚洲自啪免费| 欧美成人免费观看| 欧美日韩一区二区三区免费| 欧美劲爆第一页| 在线精品亚洲一区二区| 欧美一区二区三区日韩视频| 欧美激情一区二区三区成人| 欧美精品一区二区三区一线天视频| 欧美伊人久久久久久午夜久久久久| 先锋资源久久| 欧美成年视频| 久久婷婷国产综合国色天香| 午夜欧美精品久久久久久久| 久久综合福利| 日韩小视频在线观看专区| 一区二区日韩| 欧美日韩综合一区| 国产精品护士白丝一区av| 日韩亚洲欧美一区二区三区| 欧美日韩国产在线一区| 久久国产欧美精品| 国产精品视频九色porn| 日韩一级大片| 欧美本精品男人aⅴ天堂| 国产精品日日摸夜夜添夜夜av| 国产精品永久免费视频| 亚洲激情成人| 亚洲人成在线观看一区二区| 国产精品jizz在线观看美国| 亚洲精品影院| 另类专区欧美制服同性| 亚洲午夜日本在线观看| 牛牛影视久久网| 樱花yy私人影院亚洲| 欧美激情一区三区| 最近中文字幕mv在线一区二区三区四区| 欧美国产日韩二区| 国产一二精品视频| 在线欧美福利| 久久影院午夜论| 欧美精品在线一区二区| 亚洲国内精品| 美女视频网站黄色亚洲| 国产在线精品一区二区中文| 亚洲人成在线免费观看| 夜色激情一区二区| 欧美高清日韩| 一本色道久久精品| 亚洲高清视频中文字幕| 国内成人精品视频| 欧美成人xxx| 国产日韩高清一区二区三区在线| 久久不射中文字幕| 国产一区二区高清视频| 亚洲性人人天天夜夜摸| 久久天堂成人| 亚洲欧美影音先锋| 国产精品毛片| 久久精品噜噜噜成人av农村| 黑人巨大精品欧美一区二区| 性欧美xxxx视频在线观看| 欧美专区在线| 韩日成人av| 国产日韩欧美一区二区三区四区| 亚洲男同1069视频| 韩国视频理论视频久久| 国产精品久久久久一区二区三区共| 亚洲国产成人不卡| 欧美图区在线视频| 午夜亚洲性色福利视频| 国产精品专区第二| 麻豆精品视频在线| 欧美一级艳片视频免费观看| 久久久精品网| 欧美一区影院| 亚洲欧美精品一区| 国产精品揄拍500视频| 国内精品国产成人| 久久久www成人免费无遮挡大片| 亚洲承认在线| 国产深夜精品福利| 一区二区三区四区国产| 国产三区二区一区久久| 亚洲国产精品第一区二区三区| 欧美在线免费观看亚洲| 亚洲自拍另类| 欧美日韩大片| 欧美亚洲不卡| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩午夜视频在线观看| 国产精品视频成人| 国产一区二区三区在线观看精品| 欧美一区二区视频在线观看2020| 日韩一区二区精品视频| 久久婷婷久久一区二区三区| 欧美激情精品| 欧美成人四级电影| 午夜在线精品偷拍| 国产日韩在线一区| 欧美三级网址| 一区二区国产精品| 性欧美8khd高清极品| 国产欧美一区二区在线观看| 国产午夜精品理论片a级大结局| 国产视频一区二区在线观看| 亚洲午夜激情网页| 国产综合色精品一区二区三区| 国产夜色精品一区二区av| 美女国产一区| 久久精品人人| 亚洲激情在线激情| 性做久久久久久久免费看| 亚洲欧美久久久| 91久久精品www人人做人人爽| 亚洲日本欧美在线| 美女性感视频久久久| 亚洲精品久久久久久下一站| 欧美中文在线观看| 久久综合九九| 国产精品av一区二区| 国产自产v一区二区三区c| 亚洲久久视频| 欧美伊人久久| 一区二区电影免费观看| 欧美亚州韩日在线看免费版国语版| 欧美电影免费网站| 欧美一区二区三区视频免费播放| 国产精品免费一区二区三区在线观看| 国产精品毛片| 亚洲欧美激情视频在线观看一区二区三区| 久久一区二区三区四区| 日韩亚洲欧美精品| 99国内精品| 夜夜夜久久久| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲黄一区二区| 国产精品99久久不卡二区| 国产精品日韩在线| 亚洲欧洲另类国产综合| 欧美激情亚洲视频| 亚洲一区二区少妇| 国产精品第十页| 久久蜜桃av一区精品变态类天堂| 欧美国产亚洲另类动漫| 蜜臀久久99精品久久久画质超高清| 久久婷婷人人澡人人喊人人爽| 国产精品夜色7777狼人| 欧美激情视频一区二区三区免费| 国产精品国产三级国产普通话三级| 亚洲一区二区三区精品视频| 亚洲一区在线观看视频| 亚洲黄网站在线观看| 一本综合精品| 国产日产高清欧美一区二区三区| 欧美色区777第一页| 欧美午夜精品久久久久久人妖| 国产精品观看| 另类人畜视频在线| 亚欧成人精品| 久久精品国内一区二区三区| 亚洲最新色图| 欧美视频中文字幕在线| 欧美国产在线观看| 欧美电影免费观看高清完整版| 国产美女精品视频| 欧美午夜视频网站| 久久精品观看| 久久精品国产亚洲5555| 在线成人激情黄色| 国产精品家教| 亚洲欧美日韩国产中文| 国产精品国产a级| 亚洲视频大全| 99热在这里有精品免费| 欧美午夜久久| 国产欧美69| 亚洲盗摄视频| 国产一区二区三区网站| 国产精品福利在线| 国产午夜精品在线观看| 久久久99精品免费观看不卡| 最近中文字幕日韩精品| 久久亚洲综合色| 欧美精品一区二区三区一线天视频| 久久精品在线视频| 激情亚洲网站| 国产精品私拍pans大尺度在线| 日韩一区二区精品| 一区二区视频免费完整版观看| 一本高清dvd不卡在线观看| 欧美精品一区二区三区在线看午夜| 欧美日韩国产综合久久| 蜜臀久久99精品久久久画质超高清| 国产精品护士白丝一区av| 欧美激情黄色片| 亚洲性人人天天夜夜摸| 欧美日韩国产在线一区| 在线精品福利| 国产日韩欧美亚洲一区| 国产一区久久久| 亚洲免费精彩视频| 国外成人免费视频| 亚洲国产精品专区久久| 国产免费成人av| 日韩视频一区二区三区在线播放免费观看| 在线成人免费视频| 欧美体内she精视频| 亚洲影视中文字幕| 亚洲精品视频在线播放| 麻豆av一区二区三区久久| 欧美日韩一区二区视频在线观看| 久久激情视频免费观看| 欧美激情中文字幕一区二区| 亚洲三级视频| 欧美精品成人91久久久久久久| 久久激情婷婷| 最新中文字幕一区二区三区| 欧美激情在线狂野欧美精品| 亚洲免费在线观看| 韩国av一区二区三区四区| 亚洲一区二区免费在线|