摘要:結合虛擬實驗對于軍事訓練的重要性和當前虛擬實驗開發現狀,簡要介紹了虛擬現實設計開發平臺Virtools,以及在該平臺下進行軍事虛擬實驗開發的步驟。提出將MultiGen Creator模型應用于該平臺的思路,并對在開發過程中應當注意的問題進行了探討。
關鍵詞:Virtools;虛擬實驗;開發;行為模塊;發布
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)34-1894-03
Virtools—A New Facility of Virtual Experimentation Development
WANG Dong, SONG Xiao-li
(Shijiazhuang Military Command Academy, Shijiazhuang 050084, China)
Abstract: Combining with the significance of Virtual Experimentation for the military training and the actuality of Virtual Experimentation development, briefly introduced Virtools, the platform of VR design development,the steps of development under it. Put forward an idea of using the models made by MultiGen Creator to the platform, discussed the questions should be noticed during develop.
Key words: virtools; virtual experimentation; development; building blocks; publish
1 引言
實驗是教學中一個重要環節,對于提高教學質量、提升學習者興趣具有重要意義,但限于成本和投入產出比等因素,很多院校實驗課程開設不足,在一定程度上影響了教學質量。建立低成本、高效率、功能全面、具有協作性的實驗室成為擺在諸多院校面前的一道難題。建立虛擬實驗室是解決這一問題的有效途徑。
在大力推進信息化教育的前提下,一批優秀的虛擬實驗教學軟件應運而生,比如《飛機停車迫降》、《工程熱物理虛擬實驗》等一系列優秀電教教材,采用VRML語言建立三維模型,C++語言進行交互控制,制作完成后發布為網頁或是集成在課件中進行離線瀏覽,學員使用滿意,教學效果提高。
從開發技術角度而言,目前虛擬實驗室開發技術主要有Java、VRML、ActiveX、Cult3D等。其中Java由于具有可移植性強、安全性高等特點,在虛擬實驗開發上得到廣泛應用,缺點在于其界面不能模擬真實的場景和儀器,沉浸感差,而且開發技術難度大,不易實現;基于VRML技術開發的虛擬實驗室能夠模擬較為真實的場景和儀器,學員臨場感和沉浸感強,但其缺點是交互性差,需要借助Java語言或C++語言進行編程才能實現復雜的交互功能,這使得多數非計算機專業的教員對于開發此類課件望而卻步,不易推廣。使用Virtools軟件進行虛擬實驗開發可以相應降低開發難度。
2 關于Virtools開發平臺
Virtools是法國達索公司(Dassault System)開發的專業VR設計開發平臺(操作界面如圖1所示),目前全球已有多家設計公司使用此軟件平臺開發多種游戲軟件及交互式網頁。Virtools以其完全可視化接口與高度邏輯化編輯方式,通過簡單的鼠標拖拽即可將互動模塊加入到一般的3D模塊中去,快速簡單建立3D應用程序,適合沒有編程基礎的3D設計人員開發使用,大大降低了開發難度。模型、動畫、圖象和聲音等工業標準媒體都能通過Virtools的行為技術得以應用。在Virtools中一個動作是某個元素怎樣在場景中運動的一個簡單描述,可通過繪圖界面型的示意編輯器來創建任意類型的內容,已創建的行為可以被其他模型物體再度使用。
針對專業編程人員Virtools也提供了一個軟件開發工具包。包括一個能訪問動作的某個部分和渲染過程的軟件開發工具包。使用SDK能夠創建新的動作、修改現有動作的運行、寫新的文件給輸入和輸出文件來支持你選擇的模型文件的格式,可以簡單快速的測試新的思路而并不用執行自定義動態連接庫來執行自定義代碼。
采用Virtools技術開發三維虛擬實驗,能夠模擬真實的實驗場景和真實的實驗儀器,讓用戶產生強烈的現場感,提供的復雜的交互功能,使之沉浸其中,開發難度小,易于實現。
3 應用V irtools進行虛擬實驗開發
虛擬實驗給提供用戶的一個實驗教學、技術交流、共同研究、協同工作的平臺,是一種基于計算機虛擬原型系統的全新的科學研究與工程設計方法。虛擬實驗通常由兩部分組成:虛擬場景和交互控制。其中模型的控制完成了虛擬實驗中的交互操作,而虛擬場景則是由構建的三維模型,如戰場空間、武器裝備、樹木河流、天候條件、人物角色等共同構成。基于Virtools平臺進行虛擬實驗開發主要分為以下三個步驟:
3.1 構建實驗模型
虛擬實驗系統中模型構建的好與壞是決定整個實驗系統能否流暢運行的關鍵。模型的逼真程度與面片數量大小是一對突出的矛盾,在構建時很難做到二者兼顧,這也是評判模型構建成功與否的重要標準。隨著技術的進步和硬件渲染能力的提高,這一矛盾正在逐步縮小,運用LOD、billboard和貼圖等技術手段可以大大縮減實驗系統需要實時渲染的面片的數量,在逼真度和面片數之間找到平衡點。Virtools平臺的建模能力較弱,通常不直接在該平臺下建模,而是在外部建模軟件中制作好以后再導入。構建模型通常有以下兩種方法:
1) 使用軟件3DS MAX或Maya建模和材質、貼圖處理,并安裝MaxExporter插件,將制作好的三維模型或動畫以NMO格式保存。使用這種方法制作的模型其優點是形象、逼真度高,并且有大量的模型庫可供使用,缺點是生成的模型面片數量巨大,發布后對網絡帶寬要求高。通常由這種方式制作的模型很難直接在虛擬實驗系統中使用,而是要經過簡化處理達到數據量要求后才能使用。例如圖2是使用3DS MAX軟件制作的實驗樓模型,其面片和頂點分別達到了4.5萬個和13萬個。
2) 采用三維建模軟件MultiGen Creator進行建模。MultiGen Creator是MultiGen-Paradigm公司專門為復雜虛擬場景的實時漫游而設計的建模工具,它以點、線、面等這些基本的幾何元素構建整個虛擬場景,通過貼圖增強視覺效果,生成模型數據量小,數據結構清晰、可控,繪制速度快、交互瀏覽過程方便,極適合VR系統中實時性(Real Time)的要求,缺點是模型逼真程度不高,建模過程較為復雜,模型需要轉換后才能被Virtools使用。例如圖3是使用Creator軟件制作的實驗樓模型,其面片和頂點分別是477個和2086個。相比之下,使用Creator構建的模型數據量遠遠小于前者,對硬件要求也更低,建議在滿足逼真度要求的前提下采用。
3.2 為模型添加行為
Virtools內置500多個行為模塊(Building Blocks,簡稱BBs),行為模塊是使用者與模型交互的接口,通過它能夠對三維(或二維)模型進行各種操作,如大小、顏色變化、碰撞測試、路徑跟隨、參數傳遞等,或是實現模型的粒子效果、矩形變換、相機跟隨等效果。BBs是Virtools最不同于其他仿真軟件(如MultiGen Vega)的地方,模型可以直接調用行為模塊庫中的內置BBs進行控制,實現對鼠標、鍵盤的響應,軟件還提供了編程接口,支持使用VC++對現有的BBs進行修改或是編寫新的BBs,滿足開發人員需要。
3.2.1 功能需求分析
首先要對實驗系統要實現的功能做完整的分析,明確每一個模塊的具體作用和要實現的效果,不能太過模糊,否則在添加行為模塊時就會造成困難。確定一種適當可行的方法,并且盡可能地將所有的變數量化,定義出變量之間的關系。
3.2.2 繪制流程圖
根據功能需求分析,確認系統邏輯的可行性,找出有任何錯誤的地方,以避免在添加BBs的過程中才發現錯誤,這就必須花更多時間去修改,更浪費時間。整個流程圖繪制完成,就可以很清楚地了解執行流程。
3.2.3 合理配置BBs
依照流程圖尋找哪些行為模塊可以滿足系統的需要,將這些BBs拖拽到3D Layout編輯區中的角色身上,并在Schematic(腳本流程圖,如圖4)中對行為交互模塊進行編輯,Schematic是一種圖解式互動開發管理器,其線性圖解方式已成為業界標準模式。為每個角色配置相應的腳本,以符合實驗場景需要,形成3D交互動畫。Virtools已經提供大部分我們所需要的BBs,包含眾多的邏輯運算部分,所以這些BBs已經可以應付大部分的狀況。但有時必須自己寫VC++代碼來制作BBs,其中主要用到一些Win32和API編程的方法。
■
圖4 腳本流程圖
3.2.4配置BBs應注意的問題
對于復雜系統需要很多BBs所組成時,建議分成幾個小步驟,找到必須先開始執行的一個或者多個BBs,先拖拽至Schematic中編輯,設定好相關的參數,并先行執行,檢查是否有任何錯誤訊息,如果沒有任何錯誤訊息,輸出的結果也是我們所需要的,再繼續加入其他的BBs,重復以上的過程,直到整個功能完成。建議不要在整個功能的參數都設定完,并做完流程的連結后,才去檢查執行結果,除非整個流程都沒有錯誤,否則會花更多的時間在Debug上。在檢查執行的過程中,建議打開Trace功能,執行中的行為模組或連線,都會顯示紅色的線框,或是紅色的線條,可以清楚地知道目前流程執行到哪,如果整個流程執行太快,可以在Play鍵上按鼠標右鍵,選擇執行的frame rate,再重新開始執行,以便于觀察。
3.3 虛擬實驗的發布
Virtools允許對項目當前的進度做初步的測試與觀察,不需重復所有做過的程序而直接執行測試,并隨時可做任何調整與改變。制作完畢后,可采用兩種方法進行發布:一種是直接發布為exe格式的可執行文件,需要包含相應的動態庫文件以便移植使用;另一種是將整個虛擬實驗以vmo格式保存,同時以html格式保存一份,以網頁的形式發布,客戶端只需安裝Virtools Web Player播放插件,就可以在線訪問,方便遠程實驗人員進行實驗。
4結束語
通過Virtools開發虛擬實驗把一些微觀的、抽象的內容和危險的、不易觀察到的現象放到計算機中來進行,不受時間、地點的影響而逼真再現,有助于強化學員的認識與理解,拓展思維空間,提高發散思維能力,提高了課堂教學效率。
參考文獻:
[1] 劉明昆.三維游戲設計師寶典-Virtools開發工具篇[M].四川:四川出版集團,四川電子音像出版中心,2005.
[2] 劉明昆.三維游戲設計師寶典-Virtools技術實戰篇[M].汕頭:汕頭大學出版社,2006.
[3] 胡成文,趙雁南,王家廞,等.基于網絡平臺虛擬實驗室技術的研究和實現[J].計算機應用,2005,25(3):319-321.
[4] 龔卓榮.Vega程序設計[M].北京:國防工業出版社,2002.
[5] 劉航,王積忠,王春水.虛擬校園三維仿真系統關鍵技術研究[J].計算機工程與設計,2007,28(12):176-178.
[6] 石教英.虛擬現實基礎及實用算法[M].北京:科學出版社,2002.