李博,寧濤
(大連交通大學 軟件學院,遼寧 大連 116052)*
虛擬現(xiàn)實(Virtual Reality,簡稱VR)技術(shù)正在社會各領域得到廣泛應用,虛擬校園是虛擬現(xiàn)實技術(shù)在數(shù)字化校園中的具體應用,它是利用計算機為用戶提供模擬現(xiàn)實場景的虛擬操作環(huán)境,使人們對研究環(huán)境產(chǎn)生身臨其境的感覺.虛擬現(xiàn)實技術(shù)最本質(zhì)的特點是沉浸感(Immersion)、交互性(Interaction)和思維構(gòu)想性(Imagination)[1-3].國內(nèi)多所高校(天津大學、清華大學、北京航空航天大學等)進行了虛擬校園的建設,但是以提供單一瀏覽功能為主[4-7],本文實現(xiàn)的大連海事大學西山校區(qū)虛擬校園建設,不僅可以提供基本的瀏覽功能,還可以提供交互功能以獲取更多信息.借助于Multigen-Creator場景建模軟件和VC++開發(fā)平臺下OpenGVS的虛擬校園漫游和查詢系統(tǒng)基于這種背景和需求進行了開發(fā).
虛擬校園導引系統(tǒng)結(jié)合虛擬現(xiàn)實和可視化技術(shù),主要設計包括自主漫游和按既定線路自動漫游、查詢定位、自動量算和樓宇機構(gòu)介紹四個功能模塊,其中查詢模塊主要根據(jù)用戶輸入的目的地自動生成導引路徑和定位鳥瞰圖,自動量算模塊為用戶提供位置坐標、目的地距離以及所需時間.系統(tǒng)開發(fā)總體分為場景三維建模和繪制、模型的驅(qū)動漫游、樓宇查詢導引和介紹幾部分,如圖1所示.

圖1 系統(tǒng)總體設計
數(shù)據(jù)準備主要包括數(shù)據(jù)收集和數(shù)據(jù)處理.對收集的原始數(shù)據(jù),根據(jù)建設中對樓宇環(huán)境不同場景的要求,選擇不同精度的圖片進行數(shù)據(jù)處理.
(1)校園底圖數(shù)據(jù)收集處理.從相關管理部門獲取校園規(guī)劃的CAD工程底圖文件和航攝相片數(shù)據(jù)比例尺.利用AutoCAD對底圖文件進行修改處理并導入到Multigen Creator中,為節(jié)省導入時間和文件所占空間,分離出需要使用的部分并將其保存為獨立的flt文件;
(2)建模數(shù)據(jù)收集處理.建模數(shù)據(jù)包括校園樓宇的尺寸、比例以及外墻、甬道等的圖片數(shù)據(jù).這些數(shù)據(jù)可利用數(shù)碼相機、攝像機通過靜態(tài)拍照、動態(tài)攝像、掃描或航拍等手段采集;
(3)校內(nèi)樓宇機構(gòu)分布數(shù)據(jù).使用數(shù)據(jù)庫或者數(shù)據(jù)表將建筑數(shù)據(jù)與底圖數(shù)據(jù)進行對應統(tǒng)一,作為漫游路線和生成路徑的參照和基礎;同時,將相應主要樓宇機構(gòu)、道路導引等介紹信息保存為文本和影音格式文件.
當前主流的三維模型格式中,主要有max、3ds、flt、obj、dxf、dwg、dem.虛擬環(huán)境的建模工具有AutoCAD、3DSMax、Multigen Creator等軟件工具.我們選擇Creator工具,因為與前兩種軟件比較,Creator軟件具有簡單、直觀、運行于實時環(huán)境中的特點,除了具有一個共同的用戶接口,每種實現(xiàn)還具有一個適應特定平臺的子系統(tǒng);而且Creator建立的模型尺寸小,不占用過大內(nèi)存,不會影響環(huán)境的實時性能.這種設計可以方便利用特定擴展工具將一個基本的建模程序改造成適合于某個特殊應用,從而能夠完成圖像數(shù)據(jù)量較大的虛擬空間環(huán)境構(gòu)建.該軟件另一個突出優(yōu)點是其構(gòu)造的場景數(shù)據(jù)庫采用樹狀層次結(jié)構(gòu)來組織和管理模型,可以方便地進行實體模型的組織和管理.
選擇了建模工具后,開始進行模型的建立.模型主要分為甬道模型和樓宇模型.模型建立的精細度決定了三維場景漫游效果的逼真度,而伴隨模型高精細度的是大量的時間消耗和高端的機器性能,因此我們在精細度和繪制速度間進行平衡,既保證一定的繪制精度,又保證繪制速度.
(1)甬道模型.甬道模型由OpenGVS的幾何繪圖命令來構(gòu)建,其建模過程是用OpenGVS的幾何元素構(gòu)造每一小段道路,然后將所有的路段拼接起來構(gòu)成完整的道路.如果將各個路段的長度取得足夠小,則相對整條道路,各路段的長度就趨近于零,從而可認為每條路段即代表路線上的各個點.因此原本離散變化的視線方向也就可以滿足視覺連續(xù)過程.
(2)樓宇模型.Creator用樹狀層次結(jié)構(gòu)來組織和管理模型,方便進行實體模型的組織和管理.通過校園規(guī)劃底圖及全校航拍圖來獲得數(shù)字化地圖數(shù)據(jù).紋理數(shù)據(jù)對用來增加虛擬世界的真實感有重要的作用,可以彌補細節(jié)的不足.建模過程中按照校園地貌特性分布情況,對場景進行了區(qū)域分割.在各分割地帶,所包括的特征場景按層次由高到低、由粗到細地完成模型的場景構(gòu)造過程,如圖2所示.整個過程分為幾何建模、形象建模(也稱物理建模)和視景生成3個過程.

圖2 大連海事大學西山校區(qū)鳥瞰圖
三維模型建立好后要進行紋理繪制(Rendering),紋理繪制能夠增強模型的視覺效果和逼真度,繪制工作主要包括模型的材質(zhì)和光照.本系統(tǒng)使用Photoshop軟件對采集的圖片進行編輯處理,使紋理符合模型不同色調(diào)要求,草地、甬道等的紋理則是對面對象重復貼圖獲得.在繪制過程中為避免瀏覽時出現(xiàn)像素閃爍現(xiàn)象,對紋理壓蓋進行了處理,繪制效果如圖3所示.

圖3 繪制后效果圖
經(jīng)過建立和繪制的模型還僅是靜態(tài)的,無法達到漫游瀏覽和生成路徑的目的.從漫游者的運行方式、起始位置、觀察視角等幾個方面進行參數(shù)設置,對模型進行自動或自主驅(qū)動,使漫游者在驅(qū)動的場景中產(chǎn)生沉浸感.
目前流行的實時場景引擎工具有 Vega、VTree、Vrmap和OSG等.本系統(tǒng)從需求和功能出發(fā),選擇了 VC++開發(fā)平臺結(jié)合 OpenGVS.OpenGVS直接架構(gòu)于OpenGL、Glide和Direct3D上,既封裝了底層圖形驅(qū)動函數(shù),又保持了良好的可移植性.
導引系統(tǒng)主要包含模型驅(qū)動模塊、速度調(diào)節(jié)模塊和視線高度調(diào)節(jié)模塊.
驅(qū)動模塊是漫游系統(tǒng)的核心程序段,主要包括場景選擇、自動自主控制和碰撞檢測等部分.系統(tǒng)啟動時,初始視點設置為校區(qū)正門與人視線同高平視位置,漫游者可通過輸入設備自主改變視點位置和實現(xiàn)角度.自主漫游模式還提供了使用混合包圍盒的碰撞檢測功能.
考慮到不同漫游者由于年齡、身高和性別等生理差異,其行走速度也不同.本系統(tǒng)通過控制調(diào)節(jié)漫游的步長來達到區(qū)分行走速度的目的.解決方法為:初始化的步長(行走速度)設為正常人行走的步長,在程序中依照模型的比例設為0.5 cm,步長的調(diào)節(jié)單位為0.25 cm.用戶可通過“+”和“-”功能鍵自主調(diào)節(jié)速度.
本系統(tǒng)通過調(diào)節(jié)照相機Y軸坐標實現(xiàn)模擬調(diào)節(jié)視線高度.解決方法為:初始化的視線高度設為屏幕中央(window_size.y/2),高度調(diào)節(jié)的單位為0.2 cm,通過“H”和“L”功能鍵來實現(xiàn)高、低不同方向的遞變完成修改視線高度.
虛擬校園導引系統(tǒng)不僅提供漫游瀏覽功能,還提供按目的地自動生成漫游路徑的導引功能和漫游者定位功能.
通過數(shù)學建模將校園不同機構(gòu)抽象為多對多的關系數(shù)據(jù)庫中的節(jié)點,則自動生成漫游路徑問題便可轉(zhuǎn)化為求目標節(jié)點的最短路徑問題.首先用標記位置信息的節(jié)點表示待查詢機構(gòu)樓宇,用帶權(quán)弧表示校內(nèi)甬道(權(quán)值表示道路長度),并分別保存到不同數(shù)據(jù)表中.系統(tǒng)通過計算視點坐標值獲取距離漫游者當前位置最近的節(jié)點信息.然后通過帶權(quán)弧建立數(shù)據(jù)表中節(jié)點的一對一關系,將關系保存到獨立數(shù)據(jù)表中.最后根據(jù)漫游者當前位置和目的地,運用Dijkstra算法實現(xiàn)按目的地自動生成漫游路徑功能.
雖然漫游者在導引系統(tǒng)中能順利到達目的地,但是要從整體對校園形成直觀的認識還有一定的困難,甚至對行走過的路線還比較模糊.為了解決漫游系統(tǒng)的這一問題已經(jīng)提出了許多解決方法.
比較有代表性的是:方法1、生成三維地圖,通過讓用戶從空中向下以一定角度觀看三維場景,來獲得空間定位信息[8].方法2、通過增加一個通道作為二維地圖通道,原來的主通道占據(jù)整個屏幕,二維地圖通道作為子通道占據(jù)少部分屏幕.二維地圖通道中,設置相機,預設光照和觀察體,相機的鏡頭始終正對表示二維地圖的模型平面[9].
方法1中當以一定角度觀看三維場景,若正面有高大的物體,則會形成遮擋;方法2當漫游者行走于場景模型下方(如樹冠、涼亭),則無法準確定位,而且由于這兩種方法消耗資源偏大,會造成繪制時的幀數(shù)下降.
本文采用“畫中畫”二維地圖簡化法.具體方法為:①將場景模型投影到平面生成二維地圖;②從相機類中獲取世界坐標系中的水平坐標,在二維地圖上以紅色的圓點表示,這樣用戶可以掌握自己的行走軌跡和在校園中的相對位置.效果如圖4所示.

圖4 簡化二維地圖
本文綜合使用 Multigen Creator建模和OpenGVS編程,完成了“虛擬校園導引系統(tǒng)”的開發(fā).與已有技術(shù)相比較,本文在四方面使用了新方法:①使用的 OpenGVS可以更好地結(jié)合底層OpenGL函數(shù)和頂層接口,并提高了可移植性;②系統(tǒng)漫游過程使用了混合包圍盒的碰撞檢測方法,提高了檢測的效率;③在完成漫游瀏覽功能基礎上,使用求最短路經(jīng)算法完成自動生成路徑功能;④使用二維地圖簡化法進行鳥瞰定位避免漫游者“迷失”方向.通過系統(tǒng)用戶測試表明本系統(tǒng)能夠有效對漫游者進行導引,并提供方便直觀的校園樓宇信息查詢和定位功能.
[1]鮑虎軍.虛擬現(xiàn)實技術(shù)概論[J].中國基礎科學,2003,5(3):26-32.
[2]潘志庚,姜曉紅,張明敏,等.分布式虛擬環(huán)境綜述[J].軟件學報,2000,11(4):35-41.
[3]寧濤,郭晨,張升文.用混合包圍盒優(yōu)化碰撞檢測方法[J].計算機工程與應用,2011,47(1):5-7.
[4]郭晨,楊國勛,孫建波,等.船舶運動控制虛擬現(xiàn)實交互式仿真系統(tǒng)[J].系統(tǒng)仿真學報,2004,16(5):81-83.
[5]寧濤,梁旭.基于虛擬現(xiàn)實技術(shù)的校園導向標識系統(tǒng)研究[J].工程圖學學報,2008,29(2):196-199.
[6]NING TAO,GUO CHEN,WANG LI JUAN.The shortest path optimization method using hybrid genetic algorithm[J].International Journal of Advancements in Computing Technology,2011,3(6):305-311.
[7]畢曉佳,苗放,葉成名.基于數(shù)字地球平臺的三維虛擬數(shù)字校園建設[J].地理空間信息,2008,6(3):99-101.
[8]寧濤,霍利.紙面原型設計方法在虛擬仿真系統(tǒng)開發(fā)的應用[J].計算機工程與設計,2008,29(20):254-256.
[9]于海鳳,邢桂芬,張凱.虛擬現(xiàn)實技術(shù)在視景仿真系統(tǒng)中的應用[J].計算機工程與設計,2006,27(6):1108-1110.