基于OpenGL的三維地形的生成與簡化_圖文_第1頁
基于OpenGL的三維地形的生成與簡化_圖文_第2頁
基于OpenGL的三維地形的生成與簡化_圖文_第3頁
基于OpenGL的三維地形的生成與簡化_圖文_第4頁
基于OpenGL的三維地形的生成與簡化_圖文_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第21卷第3期鄭州輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版V ol.21N o.32006年8月JOURNA L OF ZHENG ZHOU UNIVERSITY OF LIGHT INDUSTRY (Natural Science Aug.2006收稿日期:2005-12-07作者簡介:范乃梅(1976,女,河南省輝縣人,鄭州輕工業(yè)學(xué)院助教,主要研究方向:計(jì)算機(jī)圖形圖像.文章編號(hào):1004-1478(200603-0084-04基于OpenG L 的三維地形的生成與簡化范乃梅,熊坤(鄭州輕工業(yè)學(xué)院計(jì)算機(jī)與通信工程學(xué)院,河南鄭州450002摘要:在Visual C +環(huán)境下,以通用標(biāo)準(zhǔn)三維圖形函數(shù)庫Open

2、G L 為工具,通過在位圖的灰度值與地形高程之間建立映射關(guān)系,快速生成了三維網(wǎng)格地形.為減少高程數(shù)據(jù)生成地形的巨大數(shù)據(jù)量,應(yīng)用LOD 技術(shù)對(duì)生成的網(wǎng)格地形進(jìn)行簡化.關(guān)鍵詞:三維地形;三維圖形;地形建模;地形模型;OpenG L ;灰度等級(jí);三維地形模擬中圖分類號(hào):TP311.1文獻(xiàn)標(biāo)識(shí)碼:AImplementation and simplification of three 2dimensional terrainbased on Open G LFAN Nai 2mei ,XI ONG K un(College o f Comp.and Com.Eng.,Zhengzhou Univ.o f

3、 Light Ind.,Zhengzhou 450002,China Abstract :An approach to rapidly build a three 2dimentional terrain based on bitmap was presented.The method is to create a correspondence between the gray value of bitmap and the height of terrain.It is realized by pro 2gramming with Visual C +and OpenG L.In order

4、 to reduce the giant datum of three 2dimensional terrain ,LOD (level of detail technique was used to sim plify the gridding terrain.K ey w ords :three-dimensional terrain ;three-dimensional graph ;terrain m odeling ;terrain m odel ;OpenG L ;gray level ;three-dimensional terrain simulating0引言三維地形模擬是虛

5、擬環(huán)境仿真中最基本的、最重要的環(huán)節(jié)之一.通常地形建模所需的數(shù)據(jù)量很大,三維真實(shí)感地形的生成對(duì)計(jì)算機(jī)的圖形處理能力提出了很高的要求.這些工作原本只能在三維圖形工作站或大型計(jì)算機(jī)上完成,但其昂貴的價(jià)格使大量用戶望而止步.因此基于普通PC 機(jī)快速生成高度真實(shí)感的三維地形成為計(jì)算機(jī)圖形學(xué)領(lǐng)域中的一個(gè)挑戰(zhàn)性課題.一般來說,地形建模有以下3種方法:1分形地形建模.基于分形的全自動(dòng)生成(地形完全由分形算法生成或半自動(dòng)生成(給定一個(gè)初始模型,其細(xì)節(jié)由分形算法生成.2基于數(shù)據(jù)擬合的地形建模.最簡單且常用的一種地形建模方法,是由稀疏分布點(diǎn)的高程值構(gòu)成一些簡單的三角形平面,形成地形框架.這種地形建模方法雖然顯示速度

6、很快,但過于簡略,只具備較強(qiáng)的卡通效果,地形的真實(shí)感會(huì)受到很大影響.3基于真實(shí)地形數(shù)據(jù)的地形建模.基于真實(shí)地形數(shù)據(jù)建模構(gòu)造場景的常用方法是采用數(shù)字地面模型DT M (Digital T errain M odel 和數(shù)字高程模型DE M (Digital E levation M odel 構(gòu)成.DE M 中屬性為高程的要素是數(shù)值的集合,通常用矩陣表示,廣義的DE M 可包括等高線、三角網(wǎng)等,這里特指由地表網(wǎng)格單元各點(diǎn)高程值構(gòu)成的矩陣1.三維地形的建模就是將DE M 數(shù)據(jù)進(jìn)行網(wǎng)格化處理,每一個(gè)網(wǎng)格用三角形面片繪制出來,就可構(gòu)成高低起伏的曲面地形.基于真實(shí)數(shù)據(jù)生成地形的方法可通過飛機(jī)/衛(wèi)星激光掃

7、描直接測繪出DE M ,但獲取費(fèi)用較高,精度不一定滿足要求,對(duì)普通用戶來說一般存在難以獲取數(shù)據(jù)的問題.針對(duì)這個(gè)問題,本文提出了一種恢復(fù)DE M 的算法,該算法是基于位圖來生成數(shù)字高度圖,所采用的位圖是利用遙感、航測圖片,通過影像匹配方法產(chǎn)生的正射影像圖.該算法通過正射影像圖來自動(dòng)創(chuàng)建從視覺上與實(shí)際地形吻合的地形模型,進(jìn)而給地形賦予紋理,最終生成效果逼真的地形景觀.1地形構(gòu)建111地形模型的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建地形景觀首先需考慮地形模型的生成,建立與實(shí)際地形吻合的地形模型是成功創(chuàng)建地形景觀的關(guān)鍵.假設(shè)地形由規(guī)則矩形面片構(gòu)成,它可以通過網(wǎng)格來表達(dá),如圖1所示.在數(shù)據(jù)結(jié)構(gòu)上,使用二維數(shù)組描述地形網(wǎng)格,每個(gè)數(shù)

8、組元素描述網(wǎng)格上的一個(gè)結(jié)點(diǎn);數(shù)組下標(biāo)表示結(jié)點(diǎn)在網(wǎng)格中所處的行/列位置,可以通過該下標(biāo)和網(wǎng)格間隔來計(jì)算出其對(duì)應(yīng)的三維點(diǎn)的x ,z 坐標(biāo);數(shù)組元素的值就是該結(jié)點(diǎn)的高度值y .對(duì)于圖1所示的地形網(wǎng)格,用T errain N M 來描述,其中N 是地形網(wǎng)格的行數(shù),M 是地形網(wǎng)格的列數(shù),T erraini j 表示第i 行、第j 列上的高度,i 在0到N 之間,j 在0到M 之間.己知矩形面片4個(gè)頂點(diǎn)的三維坐標(biāo),就可以方便地獲得該矩形面片上任一點(diǎn)的三維坐標(biāo),從而獲得整個(gè)地形上任一點(diǎn)的三維信息.由此可見,通過二維網(wǎng)格描述地形,能節(jié)省存儲(chǔ)空間,有利于獲得地形的三維信息.圖1(N ×M 網(wǎng)格表示地形

9、1.2算法的基本原理基于位圖生成地形的關(guān)鍵在于如何合理地將位圖的值轉(zhuǎn)換為可利用的高程數(shù)據(jù).最簡單的方法是建立位圖的灰度等級(jí)2與地形高程的線性映射關(guān)系.對(duì)于一幅位圖,首先把它從水平、垂直方向劃分為間距相等的網(wǎng)格;其次把網(wǎng)格交點(diǎn)像素的RG B 值轉(zhuǎn)化為相應(yīng)的灰度值,找到其最大的、最小的灰度值;然后根據(jù)實(shí)際地圖資料可以獲得該地形的最大、最小高度;從而可以建立位圖像素的灰度值與地形高程之間的映射關(guān)系.有了映射關(guān)系,就可以計(jì)算出網(wǎng)格點(diǎn)各個(gè)像素對(duì)應(yīng)的地形高程,將其存入二維數(shù)組.這樣就得到了三維地形的各個(gè)頂點(diǎn)數(shù)據(jù),通過OpenG L 繪制,即可得到三維地形.具體操作過程如下:1初始化地形的最大、最小高度以及

10、地形的網(wǎng)格間距;2打開一幅位圖,計(jì)算出位圖的高度和寬度,以及地形的水平、垂直網(wǎng)格數(shù),找出位圖的最大灰度值與最小灰度值,在這一步驟中,需要注意的是,如果位圖圖像的寬或高有冗余(也就是位圖的高度、寬度不是給定的網(wǎng)格間距的整數(shù)倍,則須剪裁掉冗余的部分,然后在重新計(jì)算實(shí)際用到的位圖圖像的寬和高;3建立位圖的灰度值與地形高程的線性映射關(guān)系;4依據(jù)網(wǎng)格交點(diǎn)的灰度值以及線性映射關(guān)系,求出對(duì)應(yīng)于該點(diǎn)的地圖的高程值,并將其存儲(chǔ)到兩維數(shù)組中;5計(jì)算出各個(gè)頂點(diǎn)的法線,利用OpenG L 的顯示技術(shù),繪制地形的三角形面片.該算法實(shí)現(xiàn)的流程圖如圖2所示.1.3地形模型的顯示依據(jù)上述算法,在Visual C +環(huán)境下基于

11、OpenG L 生成了一個(gè)三維網(wǎng)格地形,如圖3所示.在用上述算法構(gòu)建了地形網(wǎng)格模型后,需對(duì)地形表面進(jìn)行細(xì)化.可采用添加紋理的方法,用該地區(qū)航拍照片,經(jīng)計(jì)算機(jī)圖像處理后,作為地貌紋理貼在三維地形曲面上即可.2地形簡化一般情況下,構(gòu)成地形的三角形和紋理數(shù)據(jù)量非常大,每一個(gè)獨(dú)立的三角形投影到圖形空間后很小,并且許多紋理像素可能被壓縮到一個(gè)圖像像素中,以至于對(duì)圖像的影響可以忽略不計(jì).為了保證在漫游時(shí)地形的實(shí)時(shí)顯示,有必要在繪制之前,對(duì)地形模型進(jìn)行簡化,減少需要繪制的三角形數(shù)目,從而提高繪制的速度.本文應(yīng)用LOD (Level of Detail 技術(shù)來簡化場景中的模型,提高場景的實(shí)時(shí)性顯示.2.1LO

12、D 技術(shù)3在復(fù)雜模型的動(dòng)態(tài)顯示中,當(dāng)觀察點(diǎn)距某一物體很近時(shí),該物體的圖像在屏幕上占據(jù)較多的像素58第3期范乃梅等:基于OpenG L 的三維地形的生成與簡化 圖2生成網(wǎng)格地形圖3三維網(wǎng)格地形點(diǎn).當(dāng)觀察點(diǎn)距某一物體很遠(yuǎn)時(shí),該物體的圖像只能在屏幕上占據(jù)很少的像素點(diǎn),在這種情況下,用大量的多邊形面片去精確表示該物體是不必要的.為了更好地實(shí)現(xiàn)三維復(fù)雜模型的實(shí)時(shí)動(dòng)態(tài)顯示,將三維物體用多種不同的精度表示,并根據(jù)觀察點(diǎn)位置的變化而選擇不同精度的模型予以成像,就成為非常有效的手段.這種方法通常稱為細(xì)節(jié)層次LOD 技術(shù).2.2簡化算法可用頂點(diǎn)聚類、近平面合并、頂點(diǎn)刪除、邊刪除、三角形刪除、邊折疊等4,5基本簡化

13、動(dòng)作來對(duì)地形網(wǎng)格模型進(jìn)行如下的處理:1數(shù)據(jù)預(yù)處理.確定頂點(diǎn)的相鄰多邊形和計(jì)算頂點(diǎn)的重要程度.在讀入原始地形模型數(shù)據(jù)的過程中,對(duì)讀入的頂點(diǎn)數(shù)據(jù)和三角形,用新建的數(shù)據(jù)結(jié)構(gòu)重新進(jìn)行構(gòu)建.隨后確定每一個(gè)頂點(diǎn)的相鄰多邊形并計(jì)算他們的重要程度.2選擇頂點(diǎn).對(duì)于一個(gè)頂點(diǎn),如果它滿足以下3個(gè)條件:自由度小于給定的值;重要度小于預(yù)先定義的值;相鄰點(diǎn)組中沒有頂點(diǎn)被刪除.則該頂點(diǎn)可以被刪除.3局部三角形化.如果刪除了一個(gè)頂點(diǎn)以及它的相關(guān)三角形,那么必須對(duì)留下的星形多邊形進(jìn)行三角化.2.3LOD地形的繪制在地形的繪制中,主要根據(jù)所計(jì)算出來的不同層次的網(wǎng)格點(diǎn)的數(shù)據(jù)來繪制,地形的繪制是采用三角形來模擬的.在由地形建模算法

14、得到的原始數(shù)據(jù)為規(guī)則格網(wǎng)數(shù)據(jù),采用直接將格網(wǎng)進(jìn)行分解組合得到三角形的方法.原格網(wǎng)為正方形格網(wǎng),以一條對(duì)角線簡單地將格網(wǎng)分解便形成了一系列的三角形.源代碼如下:/線框形式的三角形繪制函數(shù)V oid Clod:triangle(int x1,int z1,int x2,int z2,int x3,int z368鄭州輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版2006年 glBegin (G L LI NE LOOP ;setVertex (x 1,z 1;setVertex (x 2,z 2;setVertex (x 3,z 3;glEnd (;在地形的繪制中采用了多階曲線插值的方法,這樣繪制出的地形就比較平滑,

15、最后采用三角形近似和紋理貼圖,這樣繪制出的地形就比較平滑和逼真.2.4地形的動(dòng)態(tài)顯示在預(yù)先進(jìn)行的地形模型簡化過程中,每簡化一次三角網(wǎng),就會(huì)生成另外一級(jí)模型,如果把原始的網(wǎng)格作為最低級(jí),那么每一次簡化就生成更高一級(jí)的網(wǎng)格,同時(shí),任何關(guān)于被刪除的頂點(diǎn)和三角形的增減信息,都通過點(diǎn)結(jié)構(gòu)參數(shù)的修改保存下來.這樣,在任何時(shí)候都可以按某種需要恢復(fù)網(wǎng)格原始狀態(tài).圖4圖7分別顯示了網(wǎng)格的4個(gè)層次 .圖4細(xì)節(jié)層次 1圖5細(xì)節(jié)層次 2圖6細(xì)節(jié)層次 3圖7細(xì)節(jié)層次43結(jié)語OpenG L 適用于各種計(jì)算機(jī)環(huán)境下的三維應(yīng)用程序接口(3D API ,成為國際上通用的開放式三維圖形標(biāo)準(zhǔn).本系統(tǒng)在Visual C +環(huán)境下,采用了OpenG L 在微機(jī)上實(shí)現(xiàn)了三維地形仿真,同時(shí)本文中提出的一些方法具有很好的擴(kuò)展性,對(duì)于其他仿真系統(tǒng)具有一定借鑒作用.參考文獻(xiàn):1許妙忠.虛擬現(xiàn)實(shí)中三維地形建模和可視化技術(shù)及算法研究D.武漢:武漢大學(xué),200312孫家廣.計(jì)算機(jī)圖形學(xué)M.北京

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論