郭海鵬,李薇薇
(1.長春理工大學(xué),長春 130022;2.長春理工大學(xué) 光電信息學(xué)院,長春 130012)
隨著社會(huì)的進(jìn)步和發(fā)展,單純的依靠三維建模軟件對(duì)場(chǎng)景的再現(xiàn)和漫游已經(jīng)不能滿足要求,人們的視點(diǎn)開始轉(zhuǎn)向GIS技術(shù)。ArcGIS作為GIS基礎(chǔ)軟件的領(lǐng)軍人物,功能強(qiáng)大、應(yīng)用廣泛,專門用于海量地理信息的處理,它能夠基于校園周邊的地理信息,快速的構(gòu)建校園三維場(chǎng)景[1-2]。本文就基于ArcGIS創(chuàng)建三維校園時(shí)的關(guān)鍵算法、技術(shù)以及出現(xiàn)的相關(guān)問題進(jìn)行探討和研究。
在虛擬校園中漫游時(shí),須實(shí)時(shí)、準(zhǔn)確地判斷和虛擬物體是否發(fā)生了碰撞,這樣用戶才能感覺到虛擬對(duì)象是真實(shí)存在的。本文采用基于AABB包圍盒的碰撞檢測(cè)算法進(jìn)行碰撞檢測(cè)。
AABB包圍盒滿足如下條件:
lx,ux,ly,uy,lz,uz分別是該AABB包圍盒在X、Y、Z坐標(biāo)軸上投影的最小和最大坐標(biāo)值。該算法的基礎(chǔ)是空間直線與空間多邊形的求交,可以判斷在漫游過程中是否與地形或建筑物發(fā)生碰撞。其檢測(cè)步驟為:
(1)獲取人的視點(diǎn)為V。
(2)獲取沿運(yùn)動(dòng)方向距離為d的點(diǎn)M。
(3)獲取周圍要素的長方體坐標(biāo)范圍。
(4)判斷VM是否和周圍要素是否相交,如果碰撞則采取規(guī)避措施。
(5)不碰撞的話,則可進(jìn)行到下一個(gè)位置M。
本系統(tǒng)中的漫游控制采取移動(dòng)視點(diǎn)的控制方式,具體分為以下三種:
1.鍵盤控制方式:用戶通過鍵盤改變攝像機(jī)的x、y、z坐標(biāo),達(dá)到旋轉(zhuǎn)、上移、下移、左移、右移等效果。同時(shí),通過變更移動(dòng)因子的大小,還可以達(dá)到加速、減速的效果。
2.自動(dòng)漫游方式:采取沿路徑飛行的方式進(jìn)行自動(dòng)漫游。步驟為:選擇場(chǎng)景中路徑要素,然后設(shè)置飛行時(shí)的參數(shù)(高度、視角、速度)來控制飛行過程中的視覺效果。
3.飛行漫游方式:調(diào)用ArcGIS中的“飛行”工具,可啟動(dòng)對(duì)場(chǎng)景的飛行漫游,然后可以用不同的速度沿任意方向移動(dòng)。
ArcScene沒有提供三維空間測(cè)量的接口,無法直接獲得三維空間中的距離。這里結(jié)合GDI+中的line方法,獲取二維屏幕坐標(biāo),然后通過坐標(biāo)轉(zhuǎn)換,調(diào)用SceneGraph中l(wèi)ocate方法獲得該平面坐標(biāo)點(diǎn)對(duì)應(yīng)的三維地理坐標(biāo),最后通過計(jì)算得到線段的長度信息,并在屏幕中顯示出來。屏幕坐標(biāo)與空間地圖坐標(biāo)基于橫向和縱向的系數(shù)相似比來進(jìn)行如下轉(zhuǎn)換:
窗口的高度和寬度用H、W表示。屏幕范圍的高度和寬度用H′、W′來表示。x0、y0為地圖起點(diǎn)坐標(biāo)。 x、y為地圖坐標(biāo)。 x′、y′為屏幕坐標(biāo)。
1.多邊形消減策略:多邊形的面數(shù)和段數(shù)不但會(huì)增加模型的大小,而且會(huì)增加渲染的工作量,降低實(shí)時(shí)性和響應(yīng)的及時(shí)性[3]。所以,在滿足效果的基礎(chǔ)上,應(yīng)盡可能的減少模型的段數(shù)和面數(shù),同時(shí),去掉在漫游時(shí)永遠(yuǎn)不可見的面,比如建筑物的底面。
2.背面消隱技術(shù):本系統(tǒng)是室外漫游系統(tǒng),建筑物內(nèi)部在任何時(shí)候都是不可見的,在3DS MAX中應(yīng)指定背面消隱選項(xiàng),跳過建筑物內(nèi)部渲染。這將減少大約一半的渲染量。
基于物體的近似夾角來判斷動(dòng)態(tài)遮擋物:
3.紋理映射技術(shù):本文在模型細(xì)節(jié)的刻畫上一般采用紋理映射,在對(duì)應(yīng)位置的多邊形表面鋪上紋理圖片,用來代替詳細(xì)的模型。紋理映射并不會(huì)降低場(chǎng)景的逼真程度,而且還可以極大的減少模型的多邊形數(shù)目和場(chǎng)景復(fù)雜程度,提高圖像繪制輸出時(shí)的顯示速度。對(duì)比效果如圖1所示。
圖1 科技大廈貼圖前后效果對(duì)比Fig.1 The effect comparison diagram of the before and after chartlets of technology mansion
1.模型導(dǎo)入損失:模型以3DS格式導(dǎo)入Arc-Scene后,有時(shí)會(huì)出現(xiàn)部分損失的現(xiàn)象(如鏡像部分丟失等)。原因是3DS MAX克隆模型時(shí)選擇“實(shí)例”和“參考”得到的結(jié)果在內(nèi)存中只存有一個(gè)物理地址,多個(gè)物體顯示時(shí)通過指針調(diào)用,但在導(dǎo)入到ArcScene中時(shí),指針信息丟失,顯示就會(huì)出現(xiàn)問題[4]。本文通過在3DS MAX下進(jìn)行復(fù)制操作,實(shí)現(xiàn)模型在ArcScene中無損顯示。對(duì)比效果如圖2所示。
圖2 參考和復(fù)制的模型導(dǎo)入效果對(duì)比圖Fig.2 Effect comparison diagram of the referenced and copied models
2.紋理材質(zhì)損失:模型導(dǎo)入ArcScene后,有時(shí)會(huì)出現(xiàn)輪廓完整但紋理材質(zhì)丟失的現(xiàn)象。為解決該問題,須將建好的3DS模型及其紋理貼圖在同一路徑下保存。
3.顏色、亮度、光度損失:模型導(dǎo)入ArcScene后,其顏色、亮度、燈光效果會(huì)出現(xiàn)一定程度的失真,可通過3DEffects工具進(jìn)行調(diào)節(jié)。
圖3 虛擬校園制作流程圖Fig.3 Virtual campus design chart
通過在ArcGIS中定義基本的場(chǎng)景模型之間的空間關(guān)系,利用ArcGIS中ArcMap的編輯、分析、瀏覽功能以及ArcCatalog的數(shù)據(jù)管理功能,建立起校園的二維數(shù)字場(chǎng)景;再利用ArcScene的強(qiáng)大的三維編輯、顯示、漫游以及二次開發(fā)功能進(jìn)行三維場(chǎng)景的構(gòu)建。該系統(tǒng)詳細(xì)設(shè)計(jì)流程如圖3所示。
圖4 程序運(yùn)行效果圖Fig.4 Program diagram
本文討論解決了基于ArcGIS創(chuàng)建三維虛擬校園時(shí)的關(guān)鍵技術(shù),其中包括碰撞檢測(cè)算法、漫游算法、空間測(cè)量算法,模型的優(yōu)化,以及模型導(dǎo)入時(shí)的相關(guān)問題。在此基礎(chǔ)上。實(shí)現(xiàn)了長春理工大學(xué)南校區(qū)的三維漫游系統(tǒng)。基于此系統(tǒng)可以進(jìn)行一些擴(kuò)展,比如路徑搜獲和基于人文、地理信息的自動(dòng)規(guī)劃等高級(jí)功能。
[1]鄔倫,劉瑜.地理信息系統(tǒng)——原理、方法以及應(yīng)用[M].北京:科學(xué)出版社,2011.
[2]穆?lián)P,柳錦寶,張永福.基于ArcGIS Engine的三維校園系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2009,39(6):100-104.
[3]黃瑩瑩,彭敏俊,許岷.基于虛擬現(xiàn)實(shí)的數(shù)字校園漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).應(yīng)用科技,2005,32(5):40-42.
[4]劉有貴,閆鈺鋒,馬宏.GPRS車載定位網(wǎng)絡(luò)服務(wù)系統(tǒng)研究[J].長春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2009,22(4):86-88.
[5]王艷,聶宜民,劉愛華,等.基于ArcGIS的三維虛擬校園究的研究與探討[J].山東農(nóng)業(yè)大學(xué)學(xué)報(bào),2009,40(2):283-286.