王永潔,陸銘華,劉 劍,孫光輝
(1.海軍潛艇學院,山東 青島 266071; 2.中國人民解放軍92858部隊,浙江 寧波 315812)
潛艇作戰三維視景仿真系統設計與實現
王永潔1,陸銘華1,劉 劍1,孫光輝2
(1.海軍潛艇學院,山東 青島 266071; 2.中國人民解放軍92858部隊,浙江 寧波 315812)
首先設計潛艇作戰三維視景仿真系統的總體結構,然后設計基于組件技術的潛艇作戰仿真子系統,分析潛艇作戰三維視景的功能需求,確定三維視景的設計方案和軟件結構。最后采用OSG圖形系統進行潛艇作戰三維視景仿真系統開發實現。
作戰仿真;組件;OSG;三維視景
潛艇作戰三維視景仿真系統是在潛艇作戰仿真基礎上,以三維視景的方式對潛艇作戰過程進行實時逼真直觀的演示,將作戰過程中出現的潛艇、艦艇、導彈、魚雷、直升機等實體的運動軌跡和姿態進行可視化顯示。操作人員可以靈活地控制觀看視點,對潛艇作戰過程獲得真實直觀的感受,從而為戰術推演、作戰訓練、模型驗證和武器裝備論證提供經濟有效的手段。
本文首先按照Java EE/EJB體系結構,利用組件技術建立潛艇作戰仿真子系統,然后采用OpenSceneGraph 圖形系統來作為三維視景設計的基礎開發引擎,建立三維視景子系統,2個子系統之間采用UDP網絡通信,用仿真數據驅動三維視景。系統總體結構如圖1所示。

圖1 系統總體結構圖Fig.1 System structure
目前,Java EE已成為構建大型分布式計算平臺的主流框架。本文采用Java EE/EJB的仿真應用模式建立潛艇作戰仿真子系統,有關Java EE/EJB內容參見相關文獻。

圖2 潛艇作戰模型體系結構圖Fig.2 Submarine combat model system structure
2.1 潛艇作戰模型體系結構
根據潛艇作戰過程特點,按照功能和地位的不同,潛艇作戰仿真模型體系中所包括的各類模型可劃分為:基礎類模型、裝備類模型、反潛裝備類模型、武器模型、平臺(兵力)模型、行為模型、底層的環境數據庫、裝備參數數據庫以及兵力參數數據庫等[1],具體的模型體系層次如圖2所示。
上述模型體系中模型模塊具有以下特點:環境模型統一由底層環境數據庫支撐,將數據與模型實現了分離,兵力和裝備性能參數與具體模型實現了分離。在基于組件的建模思想下,可以最大程度的實現模型的重用和模型的可重配置。具體模型構建在此不做贅述。
2.2 潛艇作戰仿真子系統的組成與仿真實體
基于組件技術的潛艇作戰仿真子系統由兵力/武器仿真單元、Java EE應用服務器單元和仿真管理單元組成。其中兵力/武器仿真單元依靠仿真部署管理動態分配仿真兵力/武器對象,各用戶從Java EE仿真服務器中調用所需模型進行重組,生成不同兵力。
在潛艇作戰仿真子系統中,實體是整個仿真系統運行的基礎,各種兵力實體的靜態、動態特性和智能行為表現是構成一切仿真活動的最基本要素。在基于組件的潛艇作戰子系統中,少量采用人在回路的虛擬實體,絕大部分運行的兵力都是構造實體CGF。
2.3 潛艇作戰仿真子系統的詳細設計
基于可重配置組件的潛艇作戰仿真子系統采用應用層、業務層和數據層相互分離的3層模式。應用層主要負責客戶端應用程序的功能,完成包括態勢顯示、仿真監控/顯示和仿真數據分析等功能;業務層主要負責Java EE應用程序服務器的功能,主要完成對EJB組件的封裝、處理用戶需求等功能;數據層主要是通過容器管理的環境數據庫、兵力參數數據庫、電子海圖數據庫和武器參數數據庫為業務層的仿真組件提供數據支持。系統組件功能調用結構如圖3所示。
本文采用可視化顯示軟件OpenSceneGraph(OSG)圖形系統[2],它是一個基于工業標準OpenGL的軟件接口,它讓程序員能夠更加快速、便捷地創建高性能、跨平臺的交互式圖形程序。OSG圖形系統,具備良好的跨平臺性,可移植性以及可擴展性。封裝并提供了數量眾多的提升程序運行時性能的算法、針對包括分頁數據庫在內的幾乎所有主流數據格式的直接數據接口、以及對腳本語言系統Python的支持。OSG作為獨立于窗口系統、操作系統和硬件平臺的三維圖形處理技術,其主要包括:

圖3 潛艇作戰仿真系統組件功能調用Fig.3 Function use of submarine combat simulation system
圖形處理、交互、窗口仿真和設備驅動等幾個方面。正因為有以上優點,它在虛擬現實、三維可視化等方面得到廣泛應用。
3.1 潛艇三維視景子系統功能需求分析
根據潛艇作戰過程,對三維視景子系統有以下功能需求:
1)以真實海洋為參考,制作接近真實效果的海洋效果,在場景遍歷時也可看到海底地形的高低起伏以及海面明暗變化。三維場景中的模型在地圖縮放時按比例進行縮放。
2)利用3DMax、Creator等建模工具建立細致真實的實體(潛艇、艦艇、魚雷、導彈等)模型,模型大小、比例、色彩、圖案接近真實。其中根據航行狀態不同(水面狀態、潛望鏡狀態和水下狀態),展示不同航行狀態的潛艇三維模型。
3)海洋有動態的波浪起伏,且海洋的顏色比較逼真。通過界面控制在不同海況條件下海洋中的波浪起伏的幅度,并根據波浪起伏情況在海面上產生浪花[3]。
4)在場景中展現比較真實的爆炸效果和爆炸后的焰火效果。在場景中展現飛機、導彈、魚雷等實體經過位置與經過時的姿態的尾跡效果。在場景中展現艦艇和潛艇水面航行時的尾跡效果。
5)用戶可通過對鍵盤和鼠標的操作實現在三維場景中的漫游、切換跟隨的實體、更改與跟隨實體的觀察距離與角度等。通過菜單選項或控制面板進行“自由觀察”、“跟隨觀察”以及“定點觀察”等視點觀察方式的設置。
3.2 潛艇三維視景子系統設計方案
三維視景軟件的基本技術方案是在OSG開源三維引擎的基礎上封裝海量地形的加載及三維模型、軍標的處理等方法。支持各類仿真實體、特效顯示。切換觀察視角模式實現不同的三維展示效果[4]??傮w的技術路線如圖4所示。

圖4 三維視景技術路線圖Fig.4 3D scene technology way
三維視景主要實現對潛艇作戰顯示及態勢環境的渲染功能。其中主要包括實體的管理,視點的管理以及特效的渲染等功能。場景的初始化與外部想定建模系統及實體編輯有密切關系。場景中實體的驅動數據來源于潛艇作戰仿真子系統,三維視景軟件的功能結構如圖5所示。

圖5 三維視景功能結構圖Fig.5 3D scene function stucture
3.3 潛艇三維視景子系統軟件結構設計
潛艇三維視景子系統軟件結構如圖6所示。

圖6 三維視景子系統軟件結構Fig.6 3D scene system software structure
3.3.1 MainWindow
該部分為潛艇三維視景子系統的主窗口,是軟件的主界面部分,是用戶與系統交互的媒介。主要包括菜單欄,工具欄,狀態欄等。還包括仿真實體機實例的樹形或其他形式的展示控件以及實體屬性等的顯示。
3.3.2 Viewer3D
三維視景軟件的窗口渲染的最終實現類為Viewer3D類??梢暬@示軟件通過Viewer3D類加載地形。根據外部想定建模系統提供的想定數據,初始化戰場態勢,構建系統場景。并以三維模型的方式來展示實體的運行效果,同時展示天空、白云、海底等自然特效,并實現具體的實體特效,如尾跡、火焰、煙霧等的渲染功能。
3.3.3 EntityMgr
實體管理,構建基本數據類型對場景內的各實體以及實例集進行統一管理,包括各實體的數據更新等。該部分依賴于想定解析模塊、實體解析模塊以及數據通信模塊。
3.3.4 SpecialEffects
特效管理,基于OSG構建具體的特殊效果。對自然特效和實體特效統一管理。主要包括海洋效果,海浪效果,煙霧效果,火焰效果,爆炸碎片效果,尾跡效果等。
3.3.5 AudioEffects
聲音特效,基于OSG構建場景的聲音效果。主要包括兩類聲音效果:一種是普通音效,不隨距離等因素變化;一種是具有“多普勒”效果的聲音展示,聲音隨著距離的遠近變大變小,聲調隨著距離和速度的變化變高變低。
3.3.6 ScenarioParse
想定解析,該部分依賴于系統外部的想定建模系統。主要用于初始化場景時,解析外部想定。想定以XML格式文件提供,其中可能包含了有關實體的信息,實體種類的名稱,該類實體的一些基本屬性信息;還包含仿真所用到的具體實體的實例信息,例如實例的名稱,初始經緯度,高度,姿態,狀態等信息。三維顯示通過對想定的解析來構造三維場景。
3.3.7 DataCommunications
數據通信模塊,在潛艇作戰仿真的過程中,潛艇作戰仿真子系統會實時將各實體實例的運動信息,姿態信息,狀態信息等發送給潛艇三維視景軟件,從而實現三維視景的動態效果。
3.3.8 ObserverMgr
視點管理,在三維視景顯示過程中實現觀察視點管理功能。主要有2種視點模式,分別是:漫游模式和跟隨模式。該部分功能依賴于主界面的工具欄,同時也依賴于三維視景顯示界面內的視點操縱器。
4.1 系統運行組成
潛艇作戰三維視景仿真系統由潛艇作戰仿真子系統和三維視景子系統2部分組成,二者間組建在同一個局域網,通過UDP協議實現網絡通信[5],具體系統組成如圖7所示。
在本系統中,所有的模型組件都部署在JavaEE仿真服務器中,由仿真管理單元負責模型的管理、部署,通過仿真想定編輯來驅動一次仿真,執行顯

圖7 潛艇作戰三維視景仿真系統組成Fig.7 The form of submarine combat 3D scene simulation system
示計算機負責監聽仿真過程中產生的實體數據,并把實體數據以網絡通信的方式傳給三維視景單元,來驅動三維視景軟件的運行[6]。
4.2 通信數據設計
三維視景軟件由潛艇作戰仿真過程數據驅動,通信數據結構必須滿足通信需要。本系統通信數據包括事件數據和實體數據兩類。事件數據用于特效渲染,實體數據用于驅動實體運動。每一幀數據結構內容如圖8所示。

圖8 通信數據結構Fig.8 Communication data structure
4.3 系統總體框架及運行效果
潛艇作戰仿真子系統在Windows平臺上基于Netbeans開發環境,采用Java語言實現,三維視景子系統在Windows平臺上基于VC++開發環境,采用C++語言實現。系統總體框架如圖9所示。

圖9 系統總體框架Fig.9 System frame
本系統將在3DMax建模軟件中建立的潛艇、艦艇、魚雷、導彈等實體模型以及海面、水下、天空等環境模型導入以OSG引擎為平臺的軟件系統中。同時接收由潛艇作戰仿真子系統在仿真過程中實時產生的事件數據和實體數據,并對實體運動數據進行插值平滑處理,顯示所有作戰實體的運動姿態,然后實時渲染作戰海洋環境,同時發出作戰過程中導彈發射、武器命中、爆炸等聲音。潛艇作戰三維視景實現效果如圖10所示。

圖10 潛艇作戰三維視景實現效果Fig.10 Submarine combat 3D scene realization effect
本文采用JavaEE/EJB體系結構,建立了基于組件技術的潛艇作戰仿真子系統,同時建立了3DMax建模軟件和OSG圖像渲染引擎相結合的三維視景子系統,二者通過網絡通信連接,共同組成了潛艇作戰三維視景仿真系統。仿真中用到的各種SDK均開放源代碼,具有良好的平臺移植性。實踐證明,本系統既可以有效解決潛艇作戰模型重用性問題,又可以逼真地模擬出潛艇、艦艇等實體的運動姿態,以及形象地渲染出海洋環境,達到了虛擬現實要求的沉浸感。
[1] 陸銘華,王永潔.基于組件的反艦導彈作戰仿真系統研究[J].戰術導彈技術,2012(1):105-109.
LU Ming-hua,WANG Yong-jie.Research of anti-ship missile warfare simulation system based on component[J].Tactical Missile Technology,2012(1):105-109.
[2] 項杰,靳媛媛,李愛光.OSG中三維場景構建的關鍵技術[J].地理空間信息,2012,10(1):44-45.
XIANG Jie,JIN Yuan-yuan,LI Ai-guang.The key technology of 3D scene in OSG[J].Geospatial Information,2012,10(1):44-45.
[3] 劉征宇,瞿永翠.海戰場視景實時生成技術研究[J].指揮控制與仿真,2010,32(4):62-63.
LIU Zheng-yu,QU Yong-cui.Research of real-time generation technology on scene for ocean battlefield[J].Command Control and Simulation,2010,32(4):62-63.
[4] 申閆春,朱幼虹.基于OSG的三維仿真平臺的設計與實現[J].計算機仿真,2007,24(6):209-210.
SHEN Yan-chun,ZHU You-hong.Design and implemen-tation of 3D simulation platform based on OSG[J].Computer Simulation,2007,24(6):209-210.
[5] 何金花,彭俠夫,王鶯.船舶運動視景仿真系統研究[J].計算機仿真,2007,24(8):198-200.
HE Jin-hua,PENG Xia-fu,WANG Ying.A visual simulation system of ship motion[J].Computer Simulation,2007,24(8):198-200.
[6] 曾安里,張建康,王國宏.軍用三維視景仿真引擎研究[J].指揮信息系統與技術,2010(5):18-20.
ZENG An-li,ZHANG Jian-kang,WANG Guo-hong.Research of the VVP-3D military visual simulation engine[J].Command Information System and Technology,2010(5):18-20.
Design and implementation of submarine combat 3D visual simulation system
WANG Yong-jie1,LU Ming-hua1,LIU Jian1,SUN Guang-hui2
(1.Navy Submarine College,Qingdao 266071,China; 2.No.92858 Unit of PLA, Ningbo 315812,China)
The paper designs the whole structure of submarine combat 3D visual simulation system. The submarine combat simulation subsystem based on component is designed. Function demand of submarine combat 3D visual simulation is analyzed, and design project and software structure of 3D visual are designed. Finally the paper implements submarine combat 3D visual simulation system by using OSG graphics system.
warfare simulation; component; OSG; 3D Visual
2013-09-18;
2013-12-31
王永潔(1979-),男,博士后,研究方向為作戰仿真技術。
TP391.9
A
1672-7649(2014)11-0132-05
10.3404/j.issn.1672-7649.2014.11.027