肖寧博
(寶雞文理學院陜西寶雞721016)
視景仿真技術使設計人員能在多維的信息環(huán)境中進行自然的交互,實現(xiàn)從定性和定量的綜合集成環(huán)境中得到感性和理性的認識,從而幫助設計人員深化概念和萌發(fā)新意,進行創(chuàng)新設計。近年來,隨著大視景仿真技術的發(fā)展,它的應用也滲透到各個領域,為產品的設計開發(fā),產品的展示都帶來了極大的便利。仿真技術直觀的特點也為專業(yè)人士和非專業(yè)人士,制造商和客戶之間提供了一個非常實用有效的交流平臺,比如飛行視景仿真是視景仿真技術在飛行模擬器中的應用。視景系統(tǒng)為整個仿真系統(tǒng)提供了一個較真實的3D環(huán)境,廣泛應用于軍事訓練和演習中[1],尤其是飛行器的仿真中[2-4]。同時,視景仿真也是虛擬現(xiàn)實技術的最重要的表現(xiàn)形式,根據(jù)仿真的目的,構造仿真對象的三維模型或再現(xiàn)真實的環(huán)境,達到非常逼真的仿真效果。
Multigen Creator系列軟件是Multigen-Paradigm公司專門針對可視化仿真行業(yè)應用特點而出的實時可視化三維建模軟件系統(tǒng),它提供了分別運行于高端SGI工作站和低端PC平臺不同版本,可以最大限度地滿足不同的應用需求。在SGI工作站的SGI IRIX操作系統(tǒng)上運行時,Multigen軟件包可以充分利用SGI工作站超強的圖形功能,最大限度地利用多個理器的強大計算功能,可以支持多線程和豐富的圖形音頻編程接口等。在PC平臺下,Multigen軟件也可以借助各種專業(yè)3D圖形加速卡,給用戶提供一個“所見即所得”的交互式可視建模軟件環(huán)境。
Multigen Vega是一套完整地用于開發(fā)交互式、實時可視化仿真應用的軟件平臺,其最基本的功能是驅動、控制、管理虛擬場景并支持快速復雜的視覺仿真程序,快速創(chuàng)建各種實時交互三維環(huán)境,快速建立大型沉浸式或非沉浸式的虛擬現(xiàn)實系統(tǒng)。從整體上而言,Vega具有以下特點:易用性、高效性、集成性、可擴展性、跨平臺性。
Vega是一種用于實時仿真及虛擬現(xiàn)實應用的高性能軟件環(huán)境和工具。它主要包括兩個部分:一個是被稱為LynX的圖形用戶界面的工具箱,另一個則是基于C語言的Vega函數(shù)調用庫。LynX的主要功能是通過可視化操作建立起三維場景模型,并將其存在一個應用定義文件(.ADF)中,而后應用程序就可以通過調用Vega的C語言函數(shù)庫來對已建好的三維場景進行渲染驅動。Vega API[5]函數(shù)庫為用戶提供了一整套方便實用的視景仿真應用程序接口,典型的Vega應用程序一般都遵循如圖1所示的基本框架。從流程圖以看出,Vega應用程序一般可以分為兩個主要的階段,首先是Vega系統(tǒng)的靜態(tài)描述階段,然后進入Vega系統(tǒng)的動態(tài)循環(huán)。
圖1 Vega應用程序框架Fig.1 Vega application framework
目標模型可以在Creator中建立,也可以采用3DMAX等專業(yè)的軟件。本文中的模型采用Creator 3.0[6]建立。如圖2所示。
圖2 車輛模型的建立Fig.2 The vehicle model
觀察者是Vega實時視景仿真系統(tǒng)中最核心的模塊之一,一個觀察者就像虛擬場景中的一臺攝像機,如果想像自己置身于虛擬場景之中,那么觀察者實際上就是用戶的眼睛,觀察者的位置實際上就是視點位置。這樣就很容易理解為什么Vega應用程序中必須至少定義一個觀察者,通過觀察者用戶才能把其他描述虛擬場景元素信息、狀態(tài)信息和控制信息等模塊類的實例聯(lián)系起來,從而將一幅幅連續(xù)的虛擬場景畫面展現(xiàn)在用戶面前。Vega中常用的觀察模式有:Tether-Follow,Tether-Spin,Tether-Fixed。當我們使用不同的運動模式時就需要選擇不同的觀察模式。圖3所示即為Tether-Spin觀察模式。
圖3 Tether-Spin運動模式Fig.3 Tether-Spin sports mode
車輛行駛時設置兩種行駛方法:車輛按照設定路徑自動行駛和車輛在控制下行駛。車輛按照設定路徑行駛,就需要用pathtools設置車輛行駛路徑,如圖4所示。使用路徑工具的優(yōu)勢在于其界面友好且操作方便,可以在很短的時間里定義出復雜的運動路徑,但是采用這種方式必須是預先定義,即在應用程序執(zhí)行之前就要定義。如果使用第二種方式定義路徑,用戶就可以實現(xiàn)實時的路徑控制,即在應用程序的執(zhí)行過程中添加、設置或修改路徑控制點及導航器標記,這給用戶帶來了極大的靈活性,并進一步提高了應用程序的交互性。添加路徑控制點可以使用vgPathAddCtrlPoint函數(shù)或者vgPathAddCtrlPointPos函數(shù)。車輛在控制下的行駛按鍵定義如表1所示。
在本系統(tǒng)中,需要進行目標與周圍環(huán)境的碰撞檢測,當兩個角色一旦發(fā)生碰撞或者相交的話,需要及時改變狀態(tài)和更新相關特效。在Vega中,碰撞檢測和相交測試一般通過Vega相交矢量來實現(xiàn),基本的相交測試計算結果可以通過vgGetIsectResult或vgGetIsectResultD這兩個函數(shù)獲得,它們都可以獲取相交測試計算結果,區(qū)別在于記錄的計算結果的精度不同,一般情況下使用前者即可。在實際視景仿真過程上,視點還會不時地穿過場景中的房屋,甚至“鉆進”山體、地下。這些現(xiàn)象的產生大大降低了模擬仿真的可信度。這是由觀察者使用的運動模式本身的局限性所決定的。這種情況下,人們所期望的效果是,視點應該始終保持相對地面的一定高度上,同時運動狀態(tài)要根據(jù)地面的起伏有所變化。這時需要知道當前視點離地面的距離,可以設想有一條通過視點并垂直于地面的直線隨著視點一起運動,直線與地面始終會有個交點,只要知道了這個交點的位置坐標就可以確定當前視點距離地面的距離了。對應用程序而言,實時獲得諸如當前位置的海拔高度、距地面的距離、是否與場景中的模型對象相交等等信息,可以對仿真運行過程中的各種狀態(tài)或事件進行準確的判斷,并及時地做出響應,從而有效解決碰撞檢測和相交測試問題。
Vega通過Isector(分扇區(qū))模塊和Volume(卷標)模塊提供了這樣一種機制,它可以在Isector實例所指定目標(Target)和該Isector實例設定的方法(Method)所對應的Volume之間進行相交測試,從而使應用程序方便地獲得許多有用的相交測試結果。
在設定路徑的情況下,車輛的行駛仿真圖如圖5所示,觀察者的角度設定為Tether-Spin運動模式,可以360度旋轉的觀察車輛行駛狀態(tài)。
圖4 車輛行駛路徑的設置Fig.4 The settings of the vehicle driving path
表1 車輛行駛時的按鍵定義Tab.1 The key definition of the vehicle driving
圖5 The vehicle driving under the control of the mouseFig.5 The vehicle driving in the setting path
車輛在鼠標控制下行駛仿真圖如圖6所示,觀測者以Tether-Follow運動模式,與車輛保持一定的可變視角距離觀測車輛行駛狀態(tài)。鼠標向左轉,車輛向左行駛,鼠標向右轉,車輛向右行駛,鼠標滑輪向前滑動,車輛加速行駛,鼠標滑輪向后滑動,車輛減速行駛。
圖6 車輛在鼠標控制下的行駛Fig.6 The vehicle driving under the control of the mouse
本文以車輛行駛的仿真模擬為例,分析了在VC的開發(fā)環(huán)境下利用Vega API函數(shù)進行視景仿真程序設計的重要步驟和程序流程,并重點討論了開發(fā)過程中幾個關鍵的問題和相應的解決方案。本仿真系統(tǒng)的開發(fā)用到了碰撞檢測[7]、圖形繪制、路徑生成及特效使用等多方面的知識,對接下來的仿真評估系統(tǒng)的設計具有重要的指導作用,對同類視景仿真系統(tǒng)的研究也極具參考價值。同時,憑借其具有的有效性、可重復性、經濟性、安全性和保密性等優(yōu)點,視景仿真技術己成為軍事領域中不可或缺的研究手段,將它用于構建虛擬仿真作戰(zhàn)環(huán)境平臺,有利于縮短試驗和研制周期,提高設備研制質量,節(jié)省研制經費,具有重要的現(xiàn)實意義。
[1] 戚澤華,杜小菁,廖炎平.基于VEGA PRIME的集束火箭仿真訓練系統(tǒng)的研究[J].系統(tǒng)仿真學報,2010,22(2):366-368.QI Ze-huang,DU Xiao-qing,LIAO Yan-ping.Based on the cluster rockets VEGA PRIME training simulation system research[J].Journal of System Simulation,2010,22(2):366-368.
[2] 趙銀玲,吳成富,陳懷民.基于Vega的無人機視景仿真應用研究[J].測控技術,2008,27(1):96-99.ZHAO Yin-ling,WU Cheng-fu,CHEN Huai-min.UAV visual simulation applications based on Vega[J].Measurement and Control Technology,2008,27(1):96-99.
[3] 王琳,孟曉風,鐘波.交互式飛行視景仿真系統(tǒng)的設計與實現(xiàn)[J].系統(tǒng)仿真學報,2008,20(1):73-75.WANG Lin,MENG Xiao-feng,ZHONG Bo.The design and Implementation of an interactive flight visual simulation system[J].Journal of System Simulation,2008,20(1):73-75.
[4] 楊大光,常波,孫國慶.GL Studio在飛機儀表板仿真中的應用[J].現(xiàn)代電子技術,2010(24):158-160.YANG Da-guang,CHANG Bo,KONG Guo-qing.GL Studio in the application of the instrument panel simulation[J].Modern Electronic Technology,2010(24):158-160.
[5] 王乘,李利軍,周均清.Vega實時三維視景仿真技術[M].武漢:華中科技大學出版社,2004.
[6] 王乘,周均清,李利軍.Creator可視化仿真建模技術[M].武漢:華中科技大學出版社,2005.
[7] 陳海峰,張少博,劉英元.振動測量誤差影響因素分析[J].火箭推進,2011(1):61-64.CHEN Hai-feng,ZHANG Shao-bo,LIU Ying-yuan.Analysis of error factor in vibration measurement[J].Journal of Rocket Propulsion,2011(1):61-64.