宋 杰 楊 健
(1.91550部隊91分隊 大連 116023)(2.91550部隊1分隊 大連 116023)
?
飛行器飛行試驗三維視景仿真系統設計與實現*
宋 杰1楊 健2
(1.91550部隊91分隊 大連 116023)(2.91550部隊1分隊 大連 116023)
介紹了一種基于Vega和Visual C++ 6.0的飛行器飛行試驗三維視景仿真系統,給出了系統總體設計方案,闡述了系統實現的關鍵技術及系統調試過程。該系統具有人機交互界面友好,幀頻高、逼真性好等優點。
三維視景; Creator; Vega; 仿真
Class Number TP391.9
在以往的飛行器飛行試驗仿真系統開發中,戰場實時態勢的顯示方式都是以數字海圖為背景、以二維軍標(或簡標)形式顯示各類目標數據信息,這種方式最大的優點就是直觀簡潔,能清晰明確地表現戰場環境中各動態實體的實時狀態。但隨著計算機技術、圖形處理技術的發展,人們不再滿足這種簡單的顯示方式,希望能同時擁有一種更真實逼真的戰場態勢顯示環境,使自身陷入一種沉浸式、身臨其境的環境。為滿足這一要求,三維視景的開發逐漸成為新型戰場仿真環境系統開發中不可或缺的一部分,三維視景開發是通過構建虛擬場景來模擬真實世界,并通過對虛擬場景的交互控制來模擬觀察和瀏覽真實世界[1]。
飛行器飛行試驗三維視景仿真系統就是通過對飛行器動力學仿真,模擬飛行器真實環境下的彈道特性,把仿真結果以動畫形式表現出來,根據仿真數據模擬飛行器從發射到擊中目標的全彈道場景。
2.1 軟件開發工具
本系統使用Vega和Visual C++ 6.0作為軟件開發平臺,開發飛行器飛行試驗三維視景仿真系統。系統的設計開發分以下幾個步驟進行:首先使用Multigen Creator建立了虛擬戰場環境,包括航區地形模型、自然景象模型、飛行器和艦艇等實體模型;其次利用Vega提供的用戶編程接口進行二次開發,實現發動機火焰、飛行器位置姿態、聲音效果等飛行器飛行特征;最終利用Vega場景驅動平臺開發環境和Visual C++6.0編程實現三維視景仿真[2]。系統利用函數庫Vega API和VC++6.0來搭建視景仿真驅動平臺。Vega是一個建立虛擬現實和實時仿真的應用軟件,而VC++6.0的面向對象編程方法為建造一個性能優良的虛擬環境提供了更大的靈活性。
2.2 系統結構框圖
飛行器飛行試驗三維視景仿真系統結構框圖如圖1所示[3]。

圖1 三維視景仿真分系統結構框圖
1) 根據地形數據庫,采用地形生成算法將地形數據文件轉換為多邊形網格,貼上相應的紋理,生成3D地形模型。
2) 根據仿真需要和初始設定,模型動態調用子程序動態地調用3D模型庫中的模型加入到仿真應用中。
3) 在仿真應用中加入聲音數據、特殊效果、氣象模型等文件。
4) 模型的運動由HLA網絡傳輸的實時數據來驅動。碰撞檢測子程序負責各種碰撞的產生、碰撞效果和聲音的調用。
3.1 三維地形可視化技術
三維地形可視化是現實世界中真實地形的再現,真實度高,必須采用具體數據構造。地形的生成多采用數字高程模型DEM(Digital Elevation Model)建立地形的網格模型,然后通過紋理映射與光等技術再現真實地貌,其構建基本流程如圖2所示[4]。

圖2 構建三維地形基本流程
3.2 實體模型三維開發技術
實體模型三維開發采用Multigen Creator軟件,Multigen Creator文件儲存主要采用OpenFlight格式,該格式的模型數據庫可以完整描述一個三維虛擬場景中包括各種行為和聲音在內的所有信息。OpenFlight格式是一種樹狀的層次化結構,可以方便地將模型按照幾何特性進行有效的組織,并將其轉化為能夠方便地進行編輯和移動的節點;而且這種樹狀結構非常適合實時系統進行各種遍歷操作。在飛行器飛行試驗實時仿真應用中使用OpenFlight格式的模型數據庫,可以在獲得極高渲染效率的同時保證實時交互的靈活性[5~6]。由Multigen Creator創建的OpenFlight格式的艦船模型如圖3所示。

圖3 由Creator創建的艦船三維模型
3.3 基于MFC的Vega的應用程序開發技術
當整個場景模型完成后,就可以導入Vega中進行三維視景的應用開發。MultiGen Vega是MultiGen-Paradigm公司專門開發的一套完整用于交互式、實時可視化仿真應用的軟件平臺,其基本功能是驅動、控制、管理虛擬場景并支持快速復雜的視覺仿真程序,快速創建各種實時交互的三維環境,快速建立大型沉浸式或非沉浸式的虛擬現實系統。
飛行器飛行試驗三維視景仿真系統采用Visual C++6.0與Vega實現實時仿真程序設計。對于在Windows平臺上開發Vega應用程序,考慮到Vega函數是用C++語言編寫的,故采用Visual C++作為開發工具,特別是Visual C++中的MFC類庫是一個相當成熟的類庫,基于該類庫開發的應用程序不僅結構合理緊湊,而且可以大大縮短開發周期。首先利用Visual C++6.0的應用程序向導生成一個單文檔界面應用程序框架,然后編輯和修改相應的代碼,實現在視圖框架中顯示Vega的渲染窗口,再添加菜單、工具欄、對話框對Vega窗口的渲染過程進行實時的交互式控制。
3.3.1 Vega應用程序的基本框架和實現
Vega應用程序可以分成兩個主要的階段,首先是Vega系統的靜態描述階段,然后進入Vega系統的動態循環。Vega應用程序框架圖如圖4所示[7]。

圖4 Vega應用程序框架圖
第一個階段主要為Vega系統的正確運行進行必要的系統配置,包括內存分配,參數設置,Vega類的定義等。第二個階段主要為調用Vega應用程序主循環。對Vega應用程序設置完畢后,調用兩個函數,實現在每一次新的顯示時更新三維場景中運動系統、運動體、觀察者、紋理等外部輸入信息,協調輸入輸出設備的同步,執行用戶指定的系統回調函數。
而Vega仿真應用程序主要是在Vega動態循環中實現的,故每一個Vega應用程序都包含如下的函數語句[8]:
Void main(int argc,char *argv[])
{
vgInitSys();
vgDefineSys(argv[1]);
vgConfigSys();
while(1){
vgSyncFrame();
vgFrame();
}
}
vgSyncFrame()和vgFrame()函數一起決定了Vega進程能夠與設定的幀頻率保持同步,從而能夠保證渲染出流暢的動態視景仿真畫面,再加上相應的控制代碼就可以完成各種仿真要求[9]。
3.3.2 基于MFC的Vega的應用程序開發
為了產生一個基于MFC的Vega應用程序,首先要生成一個Visual C++單文檔應用程序項目,其次編輯修改相應代碼來實現在視圖框架中顯示Vega渲染窗口,并實現人機交互控制功能。
飛行器飛行試驗三維視景仿真系統中需要實時地進行渲染循環,這個過程非常耗時,需要使用線程來完成畫面的驅動及渲染。MFC中線程分為兩類:用戶界面線程和工作者線程;其中用戶界面線程用于處理輸入時間并對事件作出響應;工作者線程主要用于各種耗時的計算量大的場合。因此針對本仿真系統的實際需要,創建單獨的工作者線程來完成Vega驅動和渲染的任務[10]。
4.1 視點的控制與切換
視點控制采用了三種視點觀察方式:旋轉、跟蹤和靜止。跟蹤視點又以物體為中心,設定了八個跟蹤方位。為了讓用戶更清楚的觀察到視點切換時的位置變化,系統采用了線性插值的方式,使視點切換時可以由一個位置平滑移動到另一個位置,避免了跳變。控制面板中為每個仿真實體設定了按鈕,單擊可將視點的觀察中心切換到所選物體上。系統還設計了鍵盤控制熱鍵,用數字鍵和SHIFT加數字鍵可以快速切換觀察物體。各種視點切換控制都可以通過可視化界面或鍵盤控制。
4.2 演示系統中的數據記錄與回放
Vega Prime提供類記錄模塊(VCR)用來記錄仿真過程。VCR的作用類似于錄像機,記錄的文件只能以記錄時的視點觀看,沒有人機交互功能,而且記錄的文件大量占用硬盤空間。本系統采用幀頻來記錄數據,記錄每個運動實體的運動軌跡。這樣能節省大量的系統資源和磁盤空間,回放不需要啟動整個網絡,而且回放過程可以控制視點的切換,比用VCR方式記錄的視頻數據要高效。在數據回放時,用戶通常希望能有不同的回放速度。解決的方法是:用線性插值的方法來實現慢放,用跳點讀取數據的方法來實現快放。

圖5 三維視景仿真實例動畫截圖
圖5為某型飛行器飛行試驗三維視景仿真實例動畫截圖。飛行器飛行試驗三維視景仿真系統畫面逼真流暢,顯示頻率≥30幀/秒;具有良好的聲音效果;操作人員可以通過鍵盤和鼠標在不同視點間任意切換。
本飛行器飛行試驗三維視景仿真系統基本實現了飛行器試驗鑒定數字仿真系統三維視景仿真的要求。具有人機交互界面友好,幀頻高、逼真性好等優點。該系統使飛行器設計人員可直觀地觀察飛行器的飛行過程、飛行姿態及目標的運動形式,由此分析彈道的設計是否合理。尤其在飛行器武器系統的初步設計階段,客觀條件還不允許進行實彈打靶試驗時,設計者可以利用飛行器飛行試驗三維視景仿真系統模擬打靶試驗,給彈道設計提供更為可靠的實驗依據,從而縮短研發周期,節省研究經費。
[1] 雷剛,鮮勇.彈道導彈飛行彈道的三維仿真[J].計算機仿真,2005,8:32-34.
[2] 唐勝景,汪群山,王憲宗,等.基于Visual C++和Vega的飛行器虛擬飛行仿真系統[J].北京理工大學學報,2007,27:5413-416.
[3] 宋強,康風舉.一種海上戰場視景仿真系統的開發[J].計算機仿真,2009,3:16-20.
[4] 陳娟,羅星.三維視景開發中的視景數據庫建模與優化[J].艦船電子工程,2008,4:135-138.
[5] 孟曉梅,劉文慶.Multgen Creator教程[M].北京:國防工業出版社,2005:35-140.
[6] 王乘,周均清,李利軍.Creator可視化仿真建模技術[M].武漢:華中科技大學出版社,2005:156-270.
[7] 王乘,李麗平.Vege實時三維視景仿真技術[M].武漢:華中科技大學出版社,2005:65-180.
[8] 懷紅旗,王愛民.基于MFC和Vege的導航仿真系統[J].現代電子技術,2005,2:167-170.
[9] 劉杰,雷斌.基于Vege和MFC的靶場虛擬漫游系統[J].電腦與信息技術,2007,6:11-13.
[10] 侯俊杰.深入淺出MFC[M].武漢:華中科技大學出版社,2001,230-280.
Design and Implementation of Three-dimension Visual Simulation System of Aircraft Flight Test
SONG Jie1YANG Jian2
(1. Unit 91, No. 91550 Troops of PLA, Dalian 116023)(2. Unit 1, No. 91550 Troops of PLA, Dalian 116023)
Three-dimension visual simulation system of aircraft flight test based on Vega and Visual C++ 6.0 is introduced. The overall plan of the design of the system is explained in the paper, the key technology and debugging process of the system is expounded, the system has good man-machine interface, high frame rate and realistic.
three-dimension visual, Creator, Vega, simulation
2014年9月16日,
2014年10月27日
宋杰,男,工程師,研究方向:飛行器發射環境參數測量與分析。楊健,男,工程師,研究方向:飛行器總體研究。
TP391.9
10.3969/j.issn1672-9730.2015.03.023