摘 要:飛行器的虛擬現實仿真是虛擬現實技術在航空航天領域中的重要應用。在這一高復雜研發工作中,如何恰當地利用相關軟件開發平臺,高效、準確實現目標實體的三維仿真設計、開發是該工作的關鍵所在。針對這一問題,給出了基于虛擬現實建模語言和3DS Max可視化建模軟件進行飛行器三維仿真造型的關鍵思路和過程方法。
關鍵詞:虛擬現實;VRML;飛行器仿真;瀏覽器
Research on Aerocraft Virtual Reality Simulation
WANG Haopeng,LIU Bing
(Department of Computer,Aviation University of Air Force,Changchun,130022,China)
Abstract:Virtual reality simulation of aerocraft is a typical application of virtual reality technology in aviation and space.Applying a best software development flat to realize 3D simulation designing and development effectively and determinately is the key work.The paper presents approach and process method of aerocraft 3D virtual reality modeling based on Virtual Reality Modeling Language(VRML) and correlative visual modeling software.
Keywords:virtual reality;VRML;aerocraft simulation;browser
虛擬現實技術又稱“靈境”技術,它的提出可以追溯到20世紀80年代。虛擬現實技術綜合了計算機圖形技術、計算機仿真技術、遙感技術和傳感技術等諸多領域,使人們可以進入一個計算機生成的逼真的三維虛擬環境中。VRML作為一種基于WWW的具有一定規范的描述性格式的虛擬現實建模語言,吸取了面向對象的優點,可以生成、修飾三維實體對象[1]。VRML改變了原來WWW簡單、交互性差的弱點,將人們的運動行為作為瀏覽的主體,提供給用戶虛擬的三維空間。本文將以VRML為開發平臺,研究、給出了對飛行器進行三維仿真構型的方法[2],并提供有效的仿真效果驗證。
1 VRML實現三維仿真的工作方式
1996年8月發布的VRML 2.0增強了交互、動畫和編程功能等。VRML 2.0的主要功能大體可以分為以下兩大部分:
(1) 創建、修飾三維實體;
(2) 對模型對象編程與外部進行消息交遞以實現交互功能。
根據VRML 97規范,目前VRML 2.0支持3種水平上的編程方式:第一種是利用內嵌的VRML Script接口節點中的描述性語言進行仿真建模;第二種方式是利用JAVA Script動態生成VRML三維場景和實體對象(仿真的事件處理仍然用VRML Script接口節點完成);第三種方式是通過VRML 2.0的外部編程接口API進行開發,通過發送或者讀取三維場景中節點的事件消息,使VRML 2.0構建的虛擬空間與外部網絡空間上的其他對象溝通,進而提高VRML的可用性[3]。
利用VRML構建的三維仿真場景和實體以VRML文件(*.WRL)形式存在。VRML文件使用ASCII或UTF8字符,與其他技術相比,其占用的存儲空間很小,這不僅大大加快了3D場景和實體在網絡上的傳輸速度,而且使用戶在PC機上就可以方便、快捷地瀏覽和研究,實現跨平臺發布和多用戶網絡間實時交互操作。VRML的工作流程如圖1所示[4,5]。
2 飛行器的三維虛擬模型的建立
對于簡單的三維實體,VRML支持多種規則幾何體結構的構型,包括立方體、圓錐體、圓柱體和球體等。這些規則幾何體可以由VRML的geometry節點中的基本幾何節點box,cone,sphere,cylinder等實現。利用VRML中的Extrusion節點,可以創建較為復雜的三維實體,其變化的彈性較大,控制Extrusion節點外形的字段分別是crossSection和spine。crossSection字段控制斷面形狀,形成二維輪廓。spine字段是一個三維路徑,通過crossSection定義好的斷面、面的中心,沿著此路徑延伸成三維實體。crossSection字段和spine字段在三維構型中的實現過程如圖2所示。
此外,VRML提供的ElevationGrid、IndexedFaceSet和IndexedLineSet節點可用于實現復雜實體的造型,而實體的空間坐標定位、移動則由Transform等節點完成。對于常規的內部節點無法完成的特殊、復雜實體,VRML可以通過PROTO、DEF等自定義實現。
2.1 飛行器實體的虛擬仿真造型
飛行器是典型的復雜三維仿真對象,其構型不只是簡單的三維幾何體。因此,單純的使用代碼來建模是件十分繁雜的工作。所以,針對飛行器的造型,通常需要借助一些可視化三維造型軟件,如:3D Studio MAX。3DS MAX具有即時修改的特點,而且其模型函數豐富,貼圖紋理多、模型表面處理方式多樣。利用3DS MAX對飛行器的外部及內部進行建模后,將建模結果輸出為VRML文件或者作為VRML文件的內嵌對象,然后根據細節層次的選擇與生成算法進行引用。具體的建模方法是:啟動3DS MAX,在“創建”下拉菜單中進入“輔助物”次級菜單,在VRML 97中提供了12種VRML造型方案。根據提供的造型方案對飛行器進行三維仿真建模,如圖3所示。
仿真建模完成后,在“文件”菜單中選擇“輸出”,將模型以VRML 97文件保存。
對于飛行器三維仿真實體的仿真材質可由紋理效果、光照效果等節點實現;同時,可以適當補充視點節點為瀏覽者提供有效的場景、造型瀏覽視點和向導,增強整個虛擬仿真造型及場景空間的可操作性。
2.2 三維虛擬場景造型
在VRML中可以通過Group節點將一組相關的節點組合在一起,這樣的一組節點在虛擬世界中通常是某個特定的空間場景。除此之外,在VRML中還包括以下編組節點,它們分別是:Switch轉換編組節點、BillBoard布告牌編組節點、Transform轉換編組節點、LOD轉換編組節點、Anchor讀取文件編組節點、Inline讀取文件編組節點和Collision編組節點。這些節點的匯集,即可建立三維仿真飛行器所在的三維虛擬場景空間。其基本的語法形式如下:
Group {
addChildren MFNode eventIn # 輸入接口,將指定的節點加到組的子節點列表中
removeChildren MFNode eventIn# 輸入接口,將指定節點從組的子節點列表中刪除
children MFNode exposedField[]# 包含該Group節點的子節點
bboxCenter SFVect3f field0 0 0# 包圍以組子節點的包圍盒的中心
bboxSize SFVect3f field-1 -1 -1# 包圍該組子節點的包圍盒在x,y,z方向的大小
}
根據以上語法形式創建的虛擬場景空間模擬效果如圖4所示。
2.3 與虛擬場景交互
利用VRML建立的三維仿真實體具有極強的真實感,而真實性的一個重要方面就是要允許用戶和三維對象進行直接的交互。例如:用戶對飛行器的仿真模型的動作方式不只是停留在“靜觀”上,而是要通過控制設備對三維仿真模型的各個角度、部件,甚至內部結構進行實時的動態交互。實現交互的一個基本方法就是使用VRML中的傳感器節點。所謂傳感器節點,就是指一些能夠感知用戶各種操作的節點。VRML中可有效應用于行為、交互的節點主要包括:時間傳感器(Time Sensor)、觸摸傳感器(Touch Sensor)、鼠標響應傳感器(Cylinder Sensor)、鼠標運動轉化傳感器(Plane Sensor)、鼠標單擊轉化傳感器(Sphere Sensor)、感知用戶活動傳感器(Proximity Sensor)和檢測用戶視野傳感器(Visibility Sensor)等。傳感器節點的基本語法如下:
Sensor {
Field Value 域值 Field Type 域值類型
Field Show # 域值說明
}
3 應用舉例
以假想飛行器為例,結合VRML、3DS MAX 6.0和JAVA Script等技術,可實現該飛行器虛擬現實仿真模型。模型所在VRML文件可以基于Internet Explorer、NetScape、Maxthon等瀏覽器進行全景的網上漫游。圖5和圖6是飛行器虛擬現實仿真造型基于VRML的運行效果。其中,圖5是該飛行器造型的局部瀏覽效果;圖6是該飛行器造型的全景瀏覽效果。
4 結 語
本文通過虛擬現實技術的分析、討論,給出了利用VRML語言對飛行器進行可視化虛擬現實仿真的實現方法。在使用過程中,建模工作主要根據VRML語言在開發三維仿真方面的強大優勢和相關建模工具,對各個造型進行設計、組合,并進行空間坐標定位。復雜造型的構建和綜合應用,能夠使虛擬場景中的三維造型更逼真、靈活和網絡高效運行。
參 考 文 獻
[1]王昊鵬.基于VRML的三維仿真建模算法研究[J].空軍航空大學學報,2005,2(2):41-44.
[2]Leandro Soares Indrusiak,Ricardo Augusto da Luz Reis.3D integrated circuit layout visualization using VRML[J].Future Generation Computer Systems.2001,17(5):503-511.
[3]Walczak K,Cellary W.X-VRML for Advanced Virtual Reality Applications\\[J\\].In:Computer,2003,36(3):89-92.
[4]黃文麗,盧碧紅,楊志剛,等.VRML語言入門與應用[M].北京:中國鐵道出版社,2003.
[5]Tomaz Amon,Vojko Valencic.VRML -- Enhanced Learning in Biology and Medicine[J].Future Generation Computer Systems,2000,17(1):1-6.
[6]Taubin G,Horn W P,Lazarus F,et al.Geometry Coding and VRML[J].Proceedings of the IEEE,1998,86(6):1 228-1 243.
[7]王鳴,劉喜昂,宋蔚.基于VRML的虛擬實驗系統研究[J].現代電子技術,2006,29(15):105-106,172.
作者簡介 王昊鵬 男,1978年出生,吉林長春人,講師,博士。主要研究方向為虛擬現實仿真。
劉 兵 男,1980年出生,吉林長春人,助教。主要研究方向為計算機軟件設計。