楊文陽,孟青青
(西安石油大學 計算機學院,西安 710065)
虛擬現(xiàn)實技術(shù)能夠?qū)崿F(xiàn)人與自然之間和諧交互,可以擴大對信息空間的感知通道[1].虛擬漫游涵蓋的范圍較大,它作為一種新的信息交互方式,不會局限于傳統(tǒng)的鍵盤和鼠標,其接口可為用戶提供更豐富的控制和內(nèi)容,可交互的實時瀏覽和信息查詢是虛擬漫游系統(tǒng)的基本功能[2].目前有幾種比較流行的輸入和輸出設備可用于虛擬漫游系統(tǒng),也有幾種流行的交互技術(shù)用來連接設備和表征信息.每一種設備和交互技術(shù)的結(jié)合都具有不同的特征和局限性,這主要是因為系統(tǒng)設計者無論是在硬件設備的選擇上,還是在硬件和軟件的搭配上需要不斷完善以求體現(xiàn)最佳效果[3].德國斯圖加特大學很早就開始籌劃設計與開發(fā)自己的虛擬校園,并利用相關(guān)技術(shù)對真實的校園進行模擬.浙江大學、清華大學、山東大學等也都開展了數(shù)字化校園建設[4].吉林大學基于3DS Max 創(chuàng)建數(shù)字校園場景,然后在DirectX 中選擇專業(yè)組件進行圖形再生和顯示,從而達到校園虛擬漫游的效果[5].傳統(tǒng)虛擬校園在開發(fā)技術(shù)上大多采用Quick Time VR,雖然其精確性比較高,但交互性不太令人滿意,沉浸感較差[6].校園虛擬漫游仿真采用Virtools 技術(shù)進行開發(fā),側(cè)重于虛擬場景的虛擬現(xiàn)實技術(shù),設計實現(xiàn)了虛擬場景的視景仿真系統(tǒng)[7].一般的軟件平臺不具備充分利用設備的能力,因此,在各種應用環(huán)境下往往以犧牲系統(tǒng)某些功能為代價換取系統(tǒng)的可移植性.
本研究通過比較硬件平臺來對設備性能進行分析,使用InTml (Interaction Techniques markup language,即交互技術(shù)標記語言)可以把虛擬漫游應用平臺描述為一系列相互關(guān)聯(lián)的組件,而這些組件可以完成不同的功能設置[8].本研究主要探究交互式校園虛擬漫游系統(tǒng)的設計,在借鑒以往的設計經(jīng)驗的基礎上比較其性能,使用不同的硬件和軟件逐步建立一個應用模型.該系統(tǒng)為學校在計算機及網(wǎng)絡平臺上建立數(shù)字化校園是普通平臺所無法比擬的,用戶可以體驗到與真實校園相近的虛擬環(huán)境,并且可以與虛擬環(huán)境進行交互.
InTml在交互式虛擬漫游系統(tǒng)中的應用可以看作是相互關(guān)聯(lián)數(shù)據(jù)流的過濾器.該過濾器可以連接下列任何實體:輸入或輸出設備、交互技術(shù)、對象行為、動畫、幾何對象、或其他媒體對象等,也可以連接設備收集的信息或編程語言描述的對象行為代碼.為了實現(xiàn)連接可以利用與內(nèi)容相關(guān)的多媒體開發(fā)工具,例如Maya、3DMAX、Blender 等.InTml在虛擬現(xiàn)實應用中是一種集成所有組成要素的語言工具,而不是具體內(nèi)容,這可以讓設計人員專注于解決應用程序的體系結(jié)構(gòu)和交互問題,而不用處理過于復雜的對象.以數(shù)據(jù)流為基礎的語言,如以VRML為核心,結(jié)合ASP 技術(shù),JavaScript 腳本語言和Java 語言,開發(fā)的虛擬校園漫游系統(tǒng)是以幾何和動畫的描述為重點[9],InTml 主要側(cè)重于特定行為和對象行為的應用、輸入設備信息的收集、系統(tǒng)整合等.InTml的作用使得在Internet 上通過傳輸很少的數(shù)據(jù)就可瀏覽三維虛擬場景成為可能[10].
交互式虛擬漫游系統(tǒng)應用程序是由一系列相互關(guān)聯(lián)的過濾器組成,以滿足特定用戶的需求.圖1顯示了一個簡單的InTml 應用程序,它允許用戶用跟蹤器移動虛擬手去觸摸虛擬物體,虛擬手跟蹤設備把位置和方向信息輸送到觸摸選擇技術(shù)和對象擁有者(手動識別),過濾器把多個對象和一系列期望的變化結(jié)合在一起,從而實現(xiàn)運動和旋轉(zhuǎn).對象擁有者在輸入端口通過特殊裝飾圖形識別,輸入端口接收新的持有對象(即手動識別).
圖1 虛擬手觸摸選擇對象應用InTml 圖示
為了保證測量的一致性,我們采用了以下流程圖介紹虛擬漫游系統(tǒng)交互式應用程序設計開發(fā)流程(如圖2所示),該流程主要用InTml 來識別硬件和系統(tǒng)平臺的變化.在確定該流程設計方案時要同時考慮系統(tǒng)的設計者和開發(fā)者,設計者主要負責整體應用程序的體系架構(gòu),而開發(fā)者負責詳細實施設計者明確的任務.從虛擬漫游系統(tǒng)設計者的角度來看,InTml 應用包含了一系列的模塊,這些模塊必須在基礎框架上實施,并且需要考慮一定的執(zhí)行規(guī)則.設計者與開發(fā)者需要合作,他們的主要工作是在基于InTml的環(huán)境下完成開發(fā)工作,InTml在PC 環(huán)境下被編譯成Java和Unity3D 開發(fā)工具.
圖2 虛擬漫游系統(tǒng)交互式應用程序設計開發(fā)一般流程
設計人員根據(jù)用戶需求確定應用目標,用InTml應用程序來滿足用戶需求,這可用來檢驗此設計是否違背通用語義規(guī)則和基本使用原則[11].在這一點上,開發(fā)人員可以檢查應用程序是否支持當前的開發(fā)工具,如果當前的開發(fā)工具無法涵蓋新應用程序的所有需求,設計和開發(fā)任務可以繼續(xù)進行.因此,開發(fā)人員為了適應應用程序可能會改變InTml,設計者為了適應平臺可能會改變應用程序,執(zhí)行應用程序用來檢驗是否滿足用戶需求,這就必須考慮軟件平臺的可移植性.設計和開發(fā)的內(nèi)容,如以設計模型中的主體對象、特殊的圖形效果、聲音以及用3D 工具設計的觸覺等,這些內(nèi)容可在基礎框架上通過運行InTml 應用程序來開發(fā)各種類型的媒體.圖3中協(xié)作指的是設計者和開發(fā)者之間的協(xié)作,該設計方案可以提供更有效的互動技術(shù)、使用不同的硬件、改變內(nèi)容以及集中處理問題.
圖3中平臺A 開發(fā)后,設計人員要進行修改完善是為了把這個平臺順利移植到一個新的平臺上.開發(fā)者重復平臺B的開發(fā)流程,如果可能重復利用平臺A的部件或設計,與設計者互動直到滿足用戶需求,以這種方式使兩個平臺的應用程序保持相同功能,同時也考慮了各自的獨特優(yōu)勢.不斷重復整個流程可以在提升每個平臺的功能基礎上更新其應用程序.這種方法可允許設計者與開發(fā)者在創(chuàng)建虛擬漫游系統(tǒng)應用程序中進行合作,設計者不用深入了解框架如何實現(xiàn)或編程語言,如C++或Java 等,可用InTml 實現(xiàn)交互式虛擬漫游應用程序,運用3DMAX、ArcMap 等軟件輔助平臺環(huán)境建設.以往的虛擬漫游系統(tǒng)開發(fā)者沒有考慮到這種工作的多學科性質(zhì),也沒有認識到高級虛擬漫游系統(tǒng)語言的必要性[12],這可以讓非專業(yè)程序人員在開發(fā)應用程序過程中和專業(yè)程序人員有效交流意見.該平臺支持多用戶同時在不同地點與同一場景實時進行交互,并強調(diào)場景的真實度和渲染的實時性及連續(xù)性[13].
圖3 交互式虛擬漫游系統(tǒng)軟件開發(fā)平臺移植方案
建立虛擬漫游系統(tǒng)的目的是使用戶能夠在虛擬三維環(huán)境中以全沉浸式和360 度全視角的方式漫游當前或未來的建筑或環(huán)境區(qū)域,這是傳統(tǒng)設計渲染、預渲染和回放三維動畫所難以實現(xiàn)的功能.用戶對場景的交互控制通過改變視點的位置或視線的方向來實現(xiàn),從而獲得三維虛擬場景空間的相關(guān)數(shù)據(jù)信息,實現(xiàn)虛擬場景中的漫游功能[14].該系統(tǒng)對校園主干道、教學樓、生活區(qū)和標志景觀等進行建模,然后通過應用程序?qū)崿F(xiàn)虛擬場景中的行走、轉(zhuǎn)彎、仰視、俯視等視圖效果,尤其是與其場景中的物體進行實時交互后,形成一個逼真的、具有視覺、聽覺、觸覺的感官世界,使人產(chǎn)生與計算機融為一體的真實感;虛擬空間控制也可以通過用戶的感覺、語言、手勢等進行交互操作.用戶不僅可以全身心沉浸在虛擬校園中,還可以進行信息查詢、數(shù)據(jù)分析、教學評估、發(fā)展規(guī)劃和管理決策.校園虛擬漫游系統(tǒng)在高校優(yōu)化管理、校園規(guī)劃、輔助決策和學校發(fā)展等各方面發(fā)揮著不可替代的作用[15].
本研究在設計InTml 應用程序的基礎上以大學校園作為虛擬環(huán)境設計出可行的交互式校園虛擬漫游系統(tǒng)整體開發(fā)方案(如圖4所示).交互式數(shù)字校園視景漫游模型的建立主要包括平面圖像設計、三維模型設計、模型優(yōu)化與顯示以及基本交互任務實現(xiàn)4 個部分.本研究主要利用Unity 3D 工具中的可視化界面設置場景和Unity 3D 代碼驅(qū)動程序,生成應用定義文件,最后根據(jù)用戶個性化需求設置場景虛擬漫游模式,實現(xiàn)虛擬校園的全景漫游功能.這也是當前智慧校園建設的重要組成部分,為全體師生提供全面信息化和移動化的綜合服務平臺[16].
圖4 交互式校園虛擬漫游系統(tǒng)開發(fā)方案
校園場景建模主要包括建模和圖片映射兩個步驟:第一,使用3DMAX 軟件或Creator 建立模型,創(chuàng)建者模型可通過向模型添加紋理映射功能來直接使用;如果該模型是三維模型,就需要通過面片映射或模型映射功能來獲得場景的原始模型.第二,轉(zhuǎn)換原始模型,這個過程需要將3DMAX 格式轉(zhuǎn)換為Creator 文件格式,并將其導入到Unity 3D 中以顯示處理模型.校園場景模型主要包括主干道和代表建筑群(如教學樓、生活區(qū)建筑、樹木、花草、操場等).
校園漫游場景模型建立后,由于游戲系統(tǒng)需要具備較強實時性,場景模型難以快速發(fā)送到Unity 3D 進行識別,這就有必要對場景模型進行優(yōu)化[11].在本研究中,主要采用了一下優(yōu)化方法:① 紋理技術(shù)代替法:在漫游場景中,如果模型細節(jié)較多、精度要求低的模型可以通過紋理來模擬.② 自動覆蓋法:當顯示的多邊形數(shù)量增加時,一些多邊形被自動覆蓋,這樣多邊形數(shù)量顯示的數(shù)量會減少;當顯示的多邊形數(shù)量減少時,顯示的多邊形數(shù)量也會增加.當需要在顯示一個模型時,并且在調(diào)用此函數(shù)之前,還需進行以下操作:創(chuàng)建或設置OpenGL 繪制環(huán)境、繪制場景、設置攝像機位置和方向和刷新窗口.該操作應該在調(diào)用函數(shù)的相應環(huán)境里實現(xiàn),在此只需要對模型本身理.該函數(shù)的基本算法是:
交互性是虛擬現(xiàn)實技術(shù)最重要的特征之一,也是數(shù)字校園的核心功能.在數(shù)字校園中,虛擬校園場景的基本交互功能主要有動作捕獲、行走控制和選擇操作.
(1)動作捕獲
為了捕捉用戶在虛擬漫游中的動作,系統(tǒng)需要相應的硬件輸入設備[13].桌面計算機上最常見的輸入設備是鍵盤、鼠標或體感設備(如頭盔、手套等).漫游系統(tǒng)軟件程序可以通過捕捉用戶的相應動作并將其轉(zhuǎn)換成相應的控制命令來控制場景轉(zhuǎn)換.如果要查詢漫游場景中某個物體的信息,系統(tǒng)需要具備相應的定位和選擇設備.這種定位不能用鍵盤來完成,但可以借助鼠標的定點功能.在VC++和C++編程工具中有一種特殊的信息控制機制,可以方便地捕獲漫游用戶的基本動作.此外,在Unity 3D 函數(shù)庫中的捕獲函數(shù)也可以處理用戶的動作信息.
(2)行走控制
在該系統(tǒng)中,用戶在漫游系統(tǒng)中通過鍵盤的上、下、左、右鍵控制與場景的前、后、左、右交互,最終重繪場景畫面[14].有兩種方法可以根據(jù)用戶的動作重繪場景畫面:第一,直接改變物體的三維坐標參數(shù);第二,通過用戶視點變換來實現(xiàn)交互場景的轉(zhuǎn)變.直接改變?nèi)S坐標參數(shù)會重新變換虛擬場景中所有目標對象的坐標參數(shù),并且多次變換將導致誤差累積,這將會導致虛擬場景失真.因此,通過改變用戶視點來控制行走場景變換是目前交互式虛擬場景構(gòu)建的主要方法.
(3)選擇操作
因為在計算機顯示器上繪制的目標對象通常需要多次旋轉(zhuǎn)、平移和透視變換,所以在多次變換之后進行選擇操作時,很難確定選擇了虛擬場景中的某一對象[15].此外,由于計算機的顯示屏的畫面是一個二維坐標系,虛擬漫游系統(tǒng)中所表示的三維物體需要將二維坐標轉(zhuǎn)換成三維坐標的運算,GLU 實用庫中的GLUUnproject()函數(shù)可以實現(xiàn)這種轉(zhuǎn)換.虛擬漫游系統(tǒng)通過不斷改變用戶視點和觀察點位置來實現(xiàn)多次旋轉(zhuǎn)、平移和透視變換效果,例如向前、向后、多方位旋轉(zhuǎn)、仰視和俯視等.圖5是在大學圖書館視景漫游中實現(xiàn)正向、反向和全方位旋轉(zhuǎn)的演示效果圖.
圖5 大學圖書館視景漫游效果圖
雖然目前虛擬現(xiàn)實交互技術(shù)和硬件設備不斷更新?lián)Q代,但是該研究的設計流程和方案具有普遍的適用性和推廣價值.本研究的特色在于能結(jié)合虛擬現(xiàn)實領域和學校資源進行應用研究,通過該方案開發(fā)的系統(tǒng)可以將校園的各種場景、細節(jié)和體驗完全復制到計算機或者互聯(lián)網(wǎng)上,讓學生、教師以及社會公眾不受時間和空間的限制,只需要通過計算機和網(wǎng)絡環(huán)境就能夠全方位地感受校園景色、學習環(huán)境和學習資源,使用戶產(chǎn)生身臨其境的沉浸效果.隨著虛擬現(xiàn)實技術(shù)和移動智能設備的快速發(fā)展,還需要增加更多的虛擬漫游系統(tǒng)應用程序和硬件設備,也為精確高效的交互式校園漫游提供了成熟的技術(shù)支持和用戶基礎[17].數(shù)字校園漫游系統(tǒng)在開發(fā)設計方案也需要進一步優(yōu)化和創(chuàng)新,以便支持應用平臺建設.