吳曉雪 王魏 李響 何東鋼
摘 要: 建設(shè)虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù)是構(gòu)建虛擬場(chǎng)景,然而虛擬場(chǎng)景的構(gòu)成存在復(fù)雜性和管理編輯困難等缺點(diǎn)。將地理信息系統(tǒng)和虛擬現(xiàn)實(shí)結(jié)合在一起是探索計(jì)算機(jī)仿真的重要應(yīng)用。結(jié)合3DGIS,ArcGIS,Google Earth,osgEarth等地理信息系統(tǒng)實(shí)現(xiàn)虛擬校園的建設(shè)是一個(gè)新的方向。以大連海事大學(xué)為例,選擇對(duì)建模要求較高的MultiGen Creator進(jìn)行建模,利用osgEarth的分析功能優(yōu)勢(shì)和對(duì)OSG語言進(jìn)行特定功能的二次開發(fā)。建立數(shù)字地球圖,使用Google Map數(shù)據(jù)和三維模型實(shí)現(xiàn)了大連海事大學(xué)虛擬場(chǎng)景的功能建設(shè)。
關(guān)鍵詞: 校園漫游; 地理信息系統(tǒng); MultiGen; Creator; osgEarth
中圖分類號(hào): TN915.5?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)20?0018?04
Abstract: The key technology of constructing virtual reality is to build a virtual scene. However, the structure of the virtual scene is complicated and difficult to edit and manage. Combining the geographic information system (GIS) with the virtual reality technology is an important application of computer simulation research. Adopting geographic information systems such as 3DGIS, ArcGIS, Google Earth and osgEarth to realize virtual campus construction is a new innovation. In this paper, Dalian Maritime University is taken as an example and MultiGen Creator with high demand for modeling is chosen. The superiority of analysis function of osgEarth is utilized for the secondary development of the specific function of the OSG language. The digital earth map was created. Google Map data and 3D models are used to realize the virtual scene functional construction of Dalian Maritime University.
Keywords: campus roaming; geographic information system; MultiGen Creator; osgEarth
0 引 言
建設(shè)校園信息化、普及網(wǎng)絡(luò)以及借助網(wǎng)絡(luò)平臺(tái)提高學(xué)校的知名度,擴(kuò)大學(xué)校招生已經(jīng)成為一種趨勢(shì)。構(gòu)建多元一體的信息平臺(tái),教師生只需在客戶端打開瀏覽器點(diǎn)擊校園網(wǎng)址就能在虛擬的校園中自由地行走,不受時(shí)間、空間的限制,身臨其境地暢游整個(gè)校園。了解校園的建設(shè)環(huán)境和校園風(fēng)貌,將具有非常重要的意義。很多高校已經(jīng)創(chuàng)建了自己校園網(wǎng)站,但是多數(shù)都是二維平面的。因此構(gòu)想建立一個(gè)三維虛擬場(chǎng)景,將學(xué)校的教學(xué)環(huán)境、校園風(fēng)貌等信息整合在一起,更直觀方便地向師生展示。整合原有的資源信息,在場(chǎng)景建設(shè)中增加校園導(dǎo)航,校園樓宇信息展示和管理等功能。
虛擬現(xiàn)實(shí)技術(shù)(VR)通過用戶的輸入做出實(shí)時(shí)響應(yīng),全方位仿真互動(dòng)模擬空間,主要由場(chǎng)景和對(duì)象、行為、互動(dòng)、交流和聲音組成。探索在于如何利用計(jì)算機(jī)圖形學(xué)創(chuàng)建實(shí)時(shí)的三維效果,如何搭建虛擬場(chǎng)景窗口以及如何運(yùn)用虛擬現(xiàn)實(shí)技術(shù)[1]。虛擬現(xiàn)實(shí)導(dǎo)航系統(tǒng)主要借助計(jì)算機(jī)建模工具完成三維效果,并通過編程軟件進(jìn)行場(chǎng)景的導(dǎo)航(例如漫游)。osgEarth是基于OSG(Open Scene Graph)使用標(biāo)準(zhǔn)C++語言開發(fā)的開源地形生成系統(tǒng),實(shí)時(shí)構(gòu)建、優(yōu)化、顯示地形模型[2]。運(yùn)用osgEarth的虛擬現(xiàn)實(shí)系統(tǒng),可以對(duì)學(xué)校信息進(jìn)行查詢、解析和決議。為促進(jìn)校園發(fā)展建設(shè)、提升科研水平提供幫助。
當(dāng)前,虛擬場(chǎng)景建設(shè)多數(shù)是基于Vega Prime、EV?Globe創(chuàng)建。VR技術(shù)逐步發(fā)展成熟,視景仿真對(duì)模型的表現(xiàn)要求也越來越嚴(yán)格。大量的高程和衛(wèi)片數(shù)量使傳統(tǒng)的建模、調(diào)用、渲染面臨挑戰(zhàn),只能進(jìn)行簡(jiǎn)單場(chǎng)景的重現(xiàn)和普通地圖基本操作,不能完成深層次空間解析。虛擬場(chǎng)景建設(shè)平臺(tái)應(yīng)具備二次開發(fā)接口、良好的數(shù)據(jù)處理能力、較高的渲染速率、傳輸速率、多類數(shù)據(jù)支持和支持大范圍地形能力,因此本文選用osgEarth來實(shí)現(xiàn)虛擬場(chǎng)景建設(shè)。
osgEarth具有各類功能的驅(qū)動(dòng)器,允許設(shè)計(jì)者結(jié)合實(shí)際需要擴(kuò)展其他類型的驅(qū)動(dòng)器[3]。本文結(jié)合虛擬現(xiàn)實(shí)技術(shù)和地理信息系統(tǒng),在VC++開發(fā)平臺(tái)集合osg 3.1.2和osgEarth 2.5開發(fā)包,創(chuàng)建三維球體模型。在此球體上添加建模數(shù)據(jù)、衛(wèi)星影像數(shù)據(jù)、樓宇信息,實(shí)現(xiàn)虛擬場(chǎng)景的功能建設(shè)。
1 osgEarth
近些年,開源領(lǐng)域出現(xiàn)了一個(gè)海量地形可視化平臺(tái):osgEarth。osgEarth是基于標(biāo)準(zhǔn)C++和OSG開發(fā)的地形生成系統(tǒng),實(shí)時(shí)加載和渲染地形,支持.shp,.jpg,.tif等多種數(shù)據(jù)格式。能夠訪問Google Map,ArcGIS Online,WMS,TMS等地圖服務(wù)器,利用地圖數(shù)據(jù)服務(wù)器下載高程數(shù)據(jù)和影像數(shù)據(jù),進(jìn)行緩存、優(yōu)化、校正、分層顯示[4]。endprint
編寫Earth文件,標(biāo)記地理空間數(shù)據(jù),設(shè)置特定功能的驅(qū)動(dòng)器加載數(shù)據(jù)信息。如GDAL是影像/高程驅(qū)動(dòng)器;VPB驅(qū)動(dòng)器,從VPB生成的地形數(shù)據(jù)庫(kù)讀取相應(yīng)的影像和高程數(shù)據(jù);TMS驅(qū)動(dòng)器,通過TMS方式讀取瓦片數(shù)據(jù)[5]。Earth文件是基于XML語言編寫的,主要有建立高程數(shù)據(jù)、添加模型紋理信息、生成緩存數(shù)據(jù)和預(yù)緩存數(shù)據(jù)。OSG自身帶有的插件將地理空間數(shù)據(jù)組織成一種數(shù)據(jù)格式,保存在一個(gè)文件中,程序運(yùn)行時(shí),根據(jù)文件的索引實(shí)現(xiàn)OSG文件的讀寫,最后經(jīng)過OSG的渲染引擎完成場(chǎng)景圖繪制[6]。用戶也可以利用OSG的插件擴(kuò)展功能,建立自己的插件數(shù)據(jù),將虛擬場(chǎng)景要素的可視化融合到osgEarth平臺(tái)中。
2 建模工具的選取
實(shí)現(xiàn)虛擬校園場(chǎng)景的漫游,在構(gòu)建三維模型時(shí)必須做到細(xì)致認(rèn)真,保證模型大小比例與實(shí)體接近,模型所處位置信息與真實(shí)情況相一致。目前,用于建模的主要工具有:MultiGen Creator,3D Studio MAX,Maya。MultiGen Creator是比較超前的三維數(shù)據(jù)庫(kù)生成系統(tǒng),具有較高的層次性、邏輯性、可靠性、精密性、靈活性、易操作性等特點(diǎn)。在虛擬場(chǎng)景仿真、模擬演練領(lǐng)域有重要應(yīng)用。3D Studio Max具有界面友好,支持的插件多等特點(diǎn),主要應(yīng)用于構(gòu)建模型、設(shè)計(jì)動(dòng)畫、輸出渲染、后期加工等方面。Maya可以進(jìn)行三維和視覺效果的制作,毛發(fā)渲染和運(yùn)動(dòng)匹配技術(shù)等。上述幾種建模工具各有優(yōu)點(diǎn),但是3D Studio MAX和Maya是按照建立模型、渲染模型、最后播放模型的順序步驟[7],MultiGen Creator可以在人機(jī)交互的情況下實(shí)時(shí)地進(jìn)行仿真渲染,提高建模效率[8],并且考慮到后續(xù)導(dǎo)航系統(tǒng)的一致性,這里選擇MultiGen Creator軟件,用戶通過仿真視景庫(kù)編輯和查看。MultiGen Creator軟件建模后生成.flt數(shù)據(jù)格式,支持的格式標(biāo)準(zhǔn)是排名靠前的可視化數(shù)據(jù)庫(kù)標(biāo)準(zhǔn),也是視景模擬仿真的行業(yè)準(zhǔn)則,具有較高的層次性和邏輯性??梢允箞D像發(fā)生裝置任意時(shí)刻都以較高的精度繪制三維場(chǎng)景,保證場(chǎng)景渲染的實(shí)時(shí)性。
2.1 建模素材的搜集
為了讓虛擬場(chǎng)景更加真實(shí),還需詳盡地搜集學(xué)校相關(guān)信息,包括:
(1) 校區(qū)平面圖。平面圖是構(gòu)建虛擬場(chǎng)景的根本依據(jù),如圖1所示,利用平面圖可以從整體上把握整個(gè)校園環(huán)境和位置信息,掌握模型的位置分配,比例大小和結(jié)構(gòu)信息等。
(2) 可供使用的影像、圖片資料。
(3) 實(shí)地勘察。為了復(fù)雜模型的構(gòu)建達(dá)到逼真的效果,建模人員還需要到現(xiàn)場(chǎng)進(jìn)行實(shí)地勘測(cè)。對(duì)模型進(jìn)行攝影、攝像,記錄模型大小、尺寸、位置、形狀和顏色信息,對(duì)模型有直觀的了解,熟悉模型的整體框架。再利用MultiGen Creator軟件對(duì)模型進(jìn)行完善。這樣構(gòu)建的模型才能真實(shí)、準(zhǔn)確,取得更好的效果。
2.2 建模基本步驟
場(chǎng)景建模的基本指導(dǎo)思想是:盡可能減少點(diǎn)和多邊形的數(shù)量,構(gòu)建層次結(jié)構(gòu)庫(kù),減少冗余的面,消除近距離點(diǎn)的微小結(jié)構(gòu)。這樣可以減小系統(tǒng)內(nèi)存,提高渲染速率,以此來創(chuàng)建精確、美觀的模型。具體建模步驟如下:
(1) 設(shè)置建模環(huán)境。打開MultiGen Creator軟件后首先需要對(duì)建模環(huán)境進(jìn)行設(shè)置,包括單位、顏色背景、坐標(biāo)參數(shù)等。
(2) 按比例對(duì)模型進(jìn)行繪制。利用MultiGen Creator建模不可能繪制出模型的實(shí)際大小,需要對(duì)模型的長(zhǎng)、寬、高按比例進(jìn)行縮放繪制。建模時(shí)需要對(duì)模型進(jìn)行分解,把模型分組成幾個(gè)部分,每個(gè)部分可以用一個(gè)獨(dú)立的層次實(shí)現(xiàn)。合理的對(duì)模型分組可以提高模型的檢索速率和模型的場(chǎng)景管理能力。
(3) 調(diào)整模型的數(shù)量、材質(zhì)、紋理、光源等參數(shù)。一般模型的材質(zhì)通過Ambient和Diffuse屬性可以實(shí)現(xiàn)[9];顏色的設(shè)置通過調(diào)節(jié)(Modulate)、混合(Blend)、透過(Decal)、替換(Replace)實(shí)現(xiàn)。模型如有反光效果,需另外設(shè)置Specular和Shininess屬性;Transparency屬性用來控制模型的透明與否。更改參數(shù)Decal可以調(diào)節(jié)紋理的明暗程度。
設(shè)置Draw new textured polygons white屬性,防止面和紋理顏色互相干擾影響。
虛擬場(chǎng)景是否逼真主要通過紋理來呈現(xiàn),紋理的精細(xì)度主要通過圖片處理軟件所得。本文采用Photoshop圖像編輯軟件,將現(xiàn)場(chǎng)拍攝的照片經(jīng)過糾正,保存圖片大小為2n次方,設(shè)置.jpeg或者.tiff格式進(jìn)行儲(chǔ)存,這樣貼圖時(shí)用到紋理不會(huì)出現(xiàn)扭曲和變形。
建模的流程如圖2所示。
3 三維場(chǎng)景構(gòu)建方法
3.1 校園模型在地表的放置
創(chuàng)建完數(shù)字地球以后需要考慮模型的放置位置,點(diǎn)擊模型并實(shí)現(xiàn)相關(guān)信息顯示功能。osgEarth中ObjectPlacer工具提供了模型放置的方法。在Google Earth上查出大連海事大學(xué)經(jīng)度、緯度,運(yùn)用ObjectPlacer函數(shù)就可以把模型放在指定位置上。
設(shè)模型為OSG中的一個(gè)細(xì)節(jié)層次節(jié)點(diǎn)(LOD),假定LOD的兩個(gè)可視范圍是0~5 000 m和5 000~30 000 m。瀏覽時(shí)當(dāng)視點(diǎn)距離小于5 000 m時(shí)對(duì)模型進(jìn)行加載顯示,當(dāng)視點(diǎn)距離過遠(yuǎn),大于5 000 m時(shí)不顯示模型信息,系統(tǒng)自動(dòng)判斷實(shí)現(xiàn)細(xì)節(jié)層次顯示。
3.2 模型的LOD顯示
Level Of Detail(LOD)根據(jù)視點(diǎn)與模型的位置和重要性,選擇不同粗糙度模型進(jìn)行渲染,減少遠(yuǎn)視點(diǎn)模型的面數(shù)和細(xì)節(jié)度,來提高渲染效率[10]。OSG有專門的場(chǎng)景結(jié)點(diǎn)osg::LOD,可以實(shí)現(xiàn)多種細(xì)節(jié)層次模型。osg::LOD有類PagedLOD,往往應(yīng)用于查看海量數(shù)據(jù)模型。如果單采用LOD技術(shù),計(jì)算機(jī)加載全部模型的細(xì)節(jié)層次會(huì)導(dǎo)致內(nèi)存量過大,運(yùn)行緩慢。PagedLOD技術(shù),把多個(gè)子節(jié)點(diǎn)設(shè)置為復(fù)雜模型的多個(gè)細(xì)節(jié)層次,并單獨(dú)加載每一個(gè)細(xì)節(jié)模型文件。endprint
PagedLOD融合LOD和DatabasePager技術(shù),可以同時(shí)緩解內(nèi)存和渲染的壓力[11]。在瀏覽三維場(chǎng)景時(shí),根據(jù)視點(diǎn)的距離加載不同細(xì)節(jié)層次的節(jié)點(diǎn)模型,將用不到的細(xì)節(jié)層次模型和窗口外的模型告知DatabasePager。PagedLOD實(shí)現(xiàn)方法如下:
DatabasePager管理場(chǎng)景節(jié)點(diǎn)的動(dòng)態(tài)調(diào)度,主要負(fù)責(zé)刪除模型節(jié)點(diǎn)、加載子節(jié)點(diǎn)、預(yù)編譯處理、合并對(duì)象到場(chǎng)景樹中。系統(tǒng)自動(dòng)判斷哪些數(shù)據(jù)是需要的,哪些數(shù)據(jù)是不需要的。數(shù)據(jù)請(qǐng)求隊(duì)列接收進(jìn)入視點(diǎn)范圍內(nèi)的模型,對(duì)文件數(shù)據(jù)進(jìn)行加載、編譯,再將對(duì)象合并到場(chǎng)景樹的響應(yīng)父節(jié)點(diǎn);對(duì)離開視點(diǎn)范圍內(nèi)的模型進(jìn)行卸載,釋放該節(jié)點(diǎn)降低系統(tǒng)的開銷,提高渲染效率和系統(tǒng)管理內(nèi)存。模型LOD顯示效果如圖5所示。
3.3 指定路徑的漫游
把編寫好的Earth文件作為一個(gè)子節(jié)點(diǎn)加入到OSG中,利用OSG自帶的漫游器,插入路線關(guān)鍵點(diǎn)(起點(diǎn)、拐點(diǎn)、終點(diǎn))位置、方向、時(shí)間,變換矩陣改變視點(diǎn)位置,實(shí)現(xiàn)導(dǎo)航功能。AnimationPath是OSG中的路徑對(duì)象類,定義AnimationPathManipulato操縱器,在構(gòu)造函數(shù)中輸入路徑文件名字,加入鍵盤選擇器keyswitchManipulator。編寫OSG中的cameraManipulator類的getMatrix方式更改視點(diǎn)視角,定義新的漫游器。圖6為導(dǎo)航系統(tǒng)流程圖。
將校園東門作為漫游起點(diǎn),經(jīng)、緯度坐標(biāo)為(124.617 7°,39.124 6°),校園西門作為終點(diǎn),經(jīng)、緯度坐標(biāo)為(108.168 2°,38.190 3°),實(shí)現(xiàn)代碼如下:
4 結(jié) 語
本文把地理信息系統(tǒng)osgEarth和虛擬校園漫游結(jié)合在一起,并以大連海事大學(xué)為例,構(gòu)建了基于osgEarth的虛擬校園。其中包括對(duì)建模素材的搜集、建模平臺(tái)的選取等基本的建模介紹,校園模型在地表的放置,模型的LOD顯示和對(duì)導(dǎo)航功能的介紹,為地理信息系統(tǒng)的建設(shè)研究提供了思路。
注:本文通訊作者為何東鋼。
參考文獻(xiàn)
[1] 何冰,陳巍.虛擬校園漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù),2016(1):45.
[2] 陳波,任清華,楊華斌.基于osgEarth的三維數(shù)字地球平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技,2015,28(10):65?68.
[3] 吳小東,許捍衛(wèi).基于osgEarth的城市三維場(chǎng)景構(gòu)建[J].地理空間信息,2013,11(2):107.
[4] 林麗瓊,陳守軍,譚忠富.電網(wǎng)運(yùn)營(yíng)風(fēng)險(xiǎn)預(yù)警評(píng)估的模糊故障樹分析模型[J].華東電力,2014,42(2):229?233.
[5] 楊俊杰.基于osgEarth繪制線狀矢量數(shù)據(jù)的模板體技術(shù)[J].韶關(guān)學(xué)院學(xué)報(bào),2012,33(8):17?20.
[6] 王文濤.地理柵格數(shù)據(jù)壓縮與場(chǎng)景組織管理技術(shù)研究與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科技大學(xué),2011.
[7] 邵曉東.creator建模藝術(shù)[M].西安:西安電子科技大學(xué)出版社,2014.
[8] 起奇哞,田傳艷,胡蘋炱,等.基于Multigen Creator某飛行器視景仿真模型優(yōu)化設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2015,23(10):3494?3497.
[9] 靳海亮,苗保亮,劉慧杰.Creator三維校園建模方法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2010,38(10):133?136.
[10] 李煒.地理信息一體化空間坐標(biāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:解放軍信息工程大學(xué),2007.
[11] 李雷.基于OGRE的海量三維模型動(dòng)態(tài)調(diào)度技術(shù)的研究與實(shí)現(xiàn)[D].南寧:廣西大學(xué),2012.
[12] 毛學(xué)剛,李明澤,范文義.三維虛擬校園的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2008,33(1):47?49.endprint