基于數(shù)字?jǐn)z影測量的虛擬地形生成技術(shù)
概述 虛擬現(xiàn)實是一種由計算機(jī)生成的高級人機(jī)交互系統(tǒng),是計算機(jī)圖形圖像技術(shù)與人類認(rèn)知理論相結(jié)合的一個高新技術(shù)領(lǐng)域。其實質(zhì)是利用計算機(jī)生成一個以視覺感受為主,也包括聽覺、觸覺、嗅覺的可感知的環(huán)境。數(shù)字?jǐn)z影測量是基于攝影測量的基本原理并運用計算機(jī)技術(shù)、數(shù)字圖像處理、計算機(jī)視覺、模式識別等多學(xué)科的理論與方法,從影像中提取所攝對象用數(shù)字方式表達(dá)的幾何與物理信息的一門學(xué)科。
在許多模擬人類活動的虛擬現(xiàn)實應(yīng)用中,虛擬地形環(huán)境的建立是一項十分重要的基礎(chǔ)性工作。由于虛擬地形環(huán)境所面臨的是海量的地形數(shù)據(jù)和地面紋理數(shù)據(jù),因此利用這些地理空間數(shù)據(jù)建立一個逼真的、立體的、可交互的虛擬地形環(huán)境并實現(xiàn)具體應(yīng)用是一項復(fù)雜的工程。近年來,一方面航空航天遙感技術(shù)和數(shù)字?jǐn)z影測量技術(shù)的迅速發(fā)展,使得從遙感立體圖像中自動獲取數(shù)字高程模型(DEM)并制作數(shù)字正射影像已經(jīng)成為現(xiàn)實。國際上許多數(shù)字?jǐn)z影測量系統(tǒng)中有關(guān)DEM自動提取和數(shù)字正射影像自動生成的技術(shù)已經(jīng)成熟,這為地形環(huán)境虛擬現(xiàn)實研究提供了直觀真實且現(xiàn)勢性強(qiáng)的基礎(chǔ)數(shù)據(jù);另一方面,計算機(jī)及其相關(guān)技術(shù)的飛速發(fā)展為我們帶來了高速運算的CPU,大容量的內(nèi)存和硬盤,高性能圖形加速顯示卡以及基于計算機(jī)的立體觀察設(shè)備,為虛擬現(xiàn)實所必須的海量數(shù)據(jù)計算和圖像的快速實時動態(tài)立體顯示提供了保證。上述兩方面的結(jié)合為地形環(huán)境虛擬現(xiàn)實的研究與應(yīng)用帶來了前所未有的機(jī)遇,也必將促進(jìn)地形環(huán)境虛擬現(xiàn)實技術(shù)及其應(yīng)用的進(jìn)一步發(fā)展。有關(guān)DEM自動提取和數(shù)字正射影像自動生成的原理在文獻(xiàn)中已有詳細(xì)論述,本文著重論述利用DEM數(shù)據(jù)和正射影像,運用OpenGL構(gòu)造真實三維地形模型的有關(guān)原理以及在PC機(jī)上實現(xiàn)動態(tài)立體顯示的有關(guān)技術(shù)。
1 利用OepnGL構(gòu)造真實三維地形模型的原理及方法
利用DEM數(shù)據(jù)和地面紋理數(shù)據(jù)構(gòu)造三維地形模型是地形環(huán)境虛擬現(xiàn)實中的關(guān)鍵步驟。近幾年來,隨著計算機(jī)技術(shù)和計算機(jī)圖形學(xué)的飛速發(fā)展,IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和SGI 公司在GL(Graphics Library)的基礎(chǔ)上聯(lián)合推出了新的三維圖形標(biāo)準(zhǔn)OpenGL,并迅速得到了廣泛的認(rèn)可與運用。OpenGL實際上是一種圖形與硬件的接口,它獨立于硬件設(shè)備,窗口系統(tǒng)和操作系統(tǒng)。OpenGL所具有的模型參數(shù)設(shè)置、紋理映射、自動消隱、雙緩存、顯示列表等多項功能為逼真三維模型的構(gòu)建與顯示創(chuàng)造了條件。DEM數(shù)據(jù)可通過數(shù)字影像的自動相關(guān)來獲取,而正射影像則可以運用數(shù)字?jǐn)z影測量中的數(shù)字微分糾正和影像鑲嵌技術(shù)對遙感影像進(jìn)行處理而得到。利用OpenGL構(gòu)造真實三維地形模型的原理如下:
1) 基礎(chǔ)數(shù)據(jù)的準(zhǔn)備與預(yù)處理。DEM數(shù)據(jù)一般采用規(guī)則的格網(wǎng)格式, 這有利于數(shù)據(jù)的存儲與計算。但是地形起伏不大的區(qū)域(如平坦地區(qū)或水域),規(guī)則格網(wǎng)格式的DEM中將會存在大量的冗余數(shù)據(jù),直接影響到三維模型構(gòu)造和紋理映射的運算速度,因此從規(guī)則格網(wǎng)DEM數(shù)據(jù)中提取最能表示地形起伏特征的重要格網(wǎng)點來簡化DEM數(shù)據(jù)就顯得十分必要,然后再以重要格網(wǎng)點為基礎(chǔ)構(gòu)建TIN 三角網(wǎng)或方格網(wǎng)來表示地形。對于數(shù)字正射影像,則需要用數(shù)字圖像處理技術(shù)來改善影像的質(zhì)量,以有利于在立體觀察中獲得最佳的視覺效果。
2) 基本參數(shù)的設(shè)置與計算。三維地形表面的頂點坐標(biāo)由DEM數(shù)據(jù)確定。根據(jù)格網(wǎng)頂點的坐標(biāo)計算出每一格網(wǎng)面的法向量值用于產(chǎn)生地形表面的明暗效應(yīng)。在用 OpenGL繪制三維地形模型和進(jìn)行紋理映射前,需要用專門的OpenGL函數(shù)設(shè)定相關(guān)的參數(shù)。其中包括光照方式、光源位置、顏色模式、明暗處理方式、紋理映射方式等。在此基礎(chǔ)上設(shè)定視點和觀察方向的初值,再分別運用OpenGL的模型變換函數(shù)、投影變換函數(shù)以及視口變換函數(shù)進(jìn)行模型變換、投影變換和視口變換,將三維地面坐標(biāo)轉(zhuǎn)換成計算機(jī)屏幕坐標(biāo),并運用OpenGL所具有的Z緩存自動消隱功能就能構(gòu)造出三維地形模型。
3) 真實紋理映射。用正射影像進(jìn)行紋理映射是建立逼真虛擬地形環(huán)境的重要手段。紋理映射的基本思路是把正射影像“貼”到由DEM數(shù)據(jù)所構(gòu)成的三維模型上。
用OpenGL函數(shù)進(jìn)行紋理映射的基本步驟為:
(1) 定義紋理:用glTexImage2D*()函數(shù)說明所映射的紋理內(nèi)容。其中包括紋理數(shù)據(jù)的指針、紋理的大小、紋理的類別(灰度或彩色)等。
(2) 紋理控制:說明紋理以何種方式映射到三維模型表面上。OpenGL提供了多種映方式,其中包括紋理濾波、重復(fù)與縮限,其調(diào)用函數(shù)為glTexParameter*()。
(3) 說明紋理的映射方式:在紋理映射過程中,可以用紋理來調(diào)整三維模型的顏色或者將紋理與三維模型原來的的顏色進(jìn)行融合,其調(diào)用函數(shù)為glTexEnv*()。
(4) 定義三維模型頂點的紋理坐標(biāo)與幾何坐標(biāo),繪制場景:幾何坐標(biāo)決定了頂點在屏幕上的繪制位置,紋理坐標(biāo)決定紋理圖像中哪一個紋素賦予該頂點,其調(diào)用函數(shù)為glTexCoord*()。
通過三維地形模型構(gòu)造和真實紋理映射就可獲得十分逼真的三維地形景觀圖,其基本流程可用圖1來表示:
2 基于PC計算機(jī)的實時動態(tài)立體顯示技術(shù)
三維立體動態(tài)顯示是虛擬現(xiàn)實中的關(guān)鍵技術(shù)。由上述方法在計算機(jī)屏幕上所生成的三維地形景觀圖實際上是一個2.5維的景觀圖,只有在引入動態(tài)立體顯示技術(shù)后,觀察者才能真正感受到虛擬現(xiàn)實所具有的強(qiáng)烈的臨場感和親自控制的參與感。
目前,三維復(fù)雜模型的動態(tài)顯示,從技術(shù)上按照由易到難的順序,可以分為三個層次:第一是逐幀計算圖像、逐幀顯示圖像、逐幀記錄并連續(xù)播放;第二是逐幀計算圖像,將結(jié)果存放在計算機(jī)內(nèi)存中,計算完畢后再連續(xù)顯示并連續(xù)記錄。盡管這種方法避免了逐幀記錄的麻煩,但是和第一個層次的方法一樣,圖像仍然是逐幀計算的,并不要求實時計算。對于以上兩種方法,由于圖像都是逐幀計算好的,因此,在動態(tài)顯示時,視點和觀察方向不能改變,因而使漫游的靈活性受到限制。與前兩個層次不同的是,在第三個層次中,圖像是根據(jù)視點及觀察方向?qū)崟r計算、實時顯示的,因而,可以做到對三維復(fù)雜環(huán)境漫游的實時交互控制,使漫游的靈活性不受限制。這就是三維復(fù)雜模型的實時動態(tài)顯示,也是本文所采用的方法。
我們知道,形成人工立體視覺必須具備下列條件:
1) 所觀察的兩張像片必須有一定的左右視差;
2) 兩眼必須分別觀察一張像片(即分像);
3) 像片所放置的位置必須使相應(yīng)視線成對相交(即消除上下視差)。基于上述考慮,如果在計算機(jī)顯示屏上沿水平方向交替顯示左右兩幅視圖,并且使觀察者的左右兩眼分別只能觀察到左右視圖,則就可以產(chǎn)生立體視覺。產(chǎn)生上述條件的方法較多。本文介紹的是利用液晶眼鏡,在顯示屏與觀察者之間分別設(shè)置一個像場遮光同步快門,該液晶快門受邏輯控制電路控制。邏輯控制電路的同步信號取自于計算機(jī)的顯示接口。在顯示屏顯示左視圖期間,打開左眼液晶快門并關(guān)閉右眼液晶快門;在顯示屏顯示右視圖期間,打開右眼液晶快門并關(guān)閉左眼液晶快門,從而獲得立體視覺。
采用上述方式時,顯示卡必須能夠先后交替顯示左右視圖,并且有足夠的顯示內(nèi)存以容納高分辨率的彩色圖像和為實現(xiàn)圖像漫游提供所必須的空間。為了克服圖像閃爍,所采用顯示器的顯示幀頻為120Hz。在本文研究過程中,具有左右視差的兩幅視圖的實時顯示是通過軟件來控制實現(xiàn)的。在立體顯示過程中,用鼠標(biāo)和鍵盤操作來實時更改視點位置和觀察方向以實現(xiàn)對地形環(huán)境漫游的交互控制。整個立體顯示過程可用圖2來表示。
3 實驗與結(jié)論
按照本文論述的原理和方法,利用DEM數(shù)據(jù)和數(shù)字正射影像,我們成功實現(xiàn)了基于微機(jī)的地形環(huán)境虛擬現(xiàn)實研究。本文實驗是在PentiumⅡ計算機(jī) (CPU 233MHz×2,內(nèi)存128M,硬盤8.0GB,AGC-GL Pro圖形加速卡)上進(jìn)行的。操作系統(tǒng)為Windows NT4.0,開發(fā)語言為Visual C++5.0。通過實驗可以得出如下結(jié)論:
1) 利用OpenGL生成三維地形景觀圖,可以避免大量的數(shù)據(jù)建模運算,因而具有很快的生成速度。當(dāng)正射影像為4M,DEM為100×100格網(wǎng),屏幕分辨率為1024×768時,立體影像顯示幀頻達(dá)20幀/秒,可滿足實時動態(tài)觀察的需要。
2) 在立體觀察過程中,通過改變模型旋角,能實時實現(xiàn)多視角條件下的虛擬地形觀察,如圖3所示;通過交互改變視點位置能實現(xiàn)三維地形的實時縮放與漫游,并能實時模擬沿線觀察和飛行通過某一區(qū)域,真正具有很強(qiáng)的臨場感和參與感。
聲明①:文章部分內(nèi)容來源互聯(lián)網(wǎng),如有侵權(quán)請聯(lián)系刪除,郵箱 cehui8@qq.com
聲明②:中測網(wǎng)登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述,文章內(nèi)容僅供參考。