王永潔,陸銘華,劉 劍,孫光輝
(1.海軍潛艇學(xué)院,山東 青島 266071; 2.中國人民解放軍92858部隊(duì),浙江 寧波 315812)
潛艇作戰(zhàn)三維視景仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
王永潔1,陸銘華1,劉 劍1,孫光輝2
(1.海軍潛艇學(xué)院,山東 青島 266071; 2.中國人民解放軍92858部隊(duì),浙江 寧波 315812)
首先設(shè)計(jì)潛艇作戰(zhàn)三維視景仿真系統(tǒng)的總體結(jié)構(gòu),然后設(shè)計(jì)基于組件技術(shù)的潛艇作戰(zhàn)仿真子系統(tǒng),分析潛艇作戰(zhàn)三維視景的功能需求,確定三維視景的設(shè)計(jì)方案和軟件結(jié)構(gòu)。最后采用OSG圖形系統(tǒng)進(jìn)行潛艇作戰(zhàn)三維視景仿真系統(tǒng)開發(fā)實(shí)現(xiàn)。
作戰(zhàn)仿真;組件;OSG;三維視景
潛艇作戰(zhàn)三維視景仿真系統(tǒng)是在潛艇作戰(zhàn)仿真基礎(chǔ)上,以三維視景的方式對潛艇作戰(zhàn)過程進(jìn)行實(shí)時(shí)逼真直觀的演示,將作戰(zhàn)過程中出現(xiàn)的潛艇、艦艇、導(dǎo)彈、魚雷、直升機(jī)等實(shí)體的運(yùn)動軌跡和姿態(tài)進(jìn)行可視化顯示。操作人員可以靈活地控制觀看視點(diǎn),對潛艇作戰(zhàn)過程獲得真實(shí)直觀的感受,從而為戰(zhàn)術(shù)推演、作戰(zhàn)訓(xùn)練、模型驗(yàn)證和武器裝備論證提供經(jīng)濟(jì)有效的手段。
本文首先按照J(rèn)ava EE/EJB體系結(jié)構(gòu),利用組件技術(shù)建立潛艇作戰(zhàn)仿真子系統(tǒng),然后采用OpenSceneGraph 圖形系統(tǒng)來作為三維視景設(shè)計(jì)的基礎(chǔ)開發(fā)引擎,建立三維視景子系統(tǒng),2個(gè)子系統(tǒng)之間采用UDP網(wǎng)絡(luò)通信,用仿真數(shù)據(jù)驅(qū)動三維視景。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 System structure
目前,Java EE已成為構(gòu)建大型分布式計(jì)算平臺的主流框架。本文采用Java EE/EJB的仿真應(yīng)用模式建立潛艇作戰(zhàn)仿真子系統(tǒng),有關(guān)Java EE/EJB內(nèi)容參見相關(guān)文獻(xiàn)。
圖2 潛艇作戰(zhàn)模型體系結(jié)構(gòu)圖Fig.2 Submarine combat model system structure
2.1 潛艇作戰(zhàn)模型體系結(jié)構(gòu)
根據(jù)潛艇作戰(zhàn)過程特點(diǎn),按照功能和地位的不同,潛艇作戰(zhàn)仿真模型體系中所包括的各類模型可劃分為:基礎(chǔ)類模型、裝備類模型、反潛裝備類模型、武器模型、平臺(兵力)模型、行為模型、底層的環(huán)境數(shù)據(jù)庫、裝備參數(shù)數(shù)據(jù)庫以及兵力參數(shù)數(shù)據(jù)庫等[1],具體的模型體系層次如圖2所示。
上述模型體系中模型模塊具有以下特點(diǎn):環(huán)境模型統(tǒng)一由底層環(huán)境數(shù)據(jù)庫支撐,將數(shù)據(jù)與模型實(shí)現(xiàn)了分離,兵力和裝備性能參數(shù)與具體模型實(shí)現(xiàn)了分離。在基于組件的建模思想下,可以最大程度的實(shí)現(xiàn)模型的重用和模型的可重配置。具體模型構(gòu)建在此不做贅述。
2.2 潛艇作戰(zhàn)仿真子系統(tǒng)的組成與仿真實(shí)體
基于組件技術(shù)的潛艇作戰(zhàn)仿真子系統(tǒng)由兵力/武器仿真單元、Java EE應(yīng)用服務(wù)器單元和仿真管理單元組成。其中兵力/武器仿真單元依靠仿真部署管理動態(tài)分配仿真兵力/武器對象,各用戶從Java EE仿真服務(wù)器中調(diào)用所需模型進(jìn)行重組,生成不同兵力。
在潛艇作戰(zhàn)仿真子系統(tǒng)中,實(shí)體是整個(gè)仿真系統(tǒng)運(yùn)行的基礎(chǔ),各種兵力實(shí)體的靜態(tài)、動態(tài)特性和智能行為表現(xiàn)是構(gòu)成一切仿真活動的最基本要素。在基于組件的潛艇作戰(zhàn)子系統(tǒng)中,少量采用人在回路的虛擬實(shí)體,絕大部分運(yùn)行的兵力都是構(gòu)造實(shí)體CGF。
2.3 潛艇作戰(zhàn)仿真子系統(tǒng)的詳細(xì)設(shè)計(jì)
基于可重配置組件的潛艇作戰(zhàn)仿真子系統(tǒng)采用應(yīng)用層、業(yè)務(wù)層和數(shù)據(jù)層相互分離的3層模式。應(yīng)用層主要負(fù)責(zé)客戶端應(yīng)用程序的功能,完成包括態(tài)勢顯示、仿真監(jiān)控/顯示和仿真數(shù)據(jù)分析等功能;業(yè)務(wù)層主要負(fù)責(zé)Java EE應(yīng)用程序服務(wù)器的功能,主要完成對EJB組件的封裝、處理用戶需求等功能;數(shù)據(jù)層主要是通過容器管理的環(huán)境數(shù)據(jù)庫、兵力參數(shù)數(shù)據(jù)庫、電子海圖數(shù)據(jù)庫和武器參數(shù)數(shù)據(jù)庫為業(yè)務(wù)層的仿真組件提供數(shù)據(jù)支持。系統(tǒng)組件功能調(diào)用結(jié)構(gòu)如圖3所示。
本文采用可視化顯示軟件OpenSceneGraph(OSG)圖形系統(tǒng)[2],它是一個(gè)基于工業(yè)標(biāo)準(zhǔn)OpenGL的軟件接口,它讓程序員能夠更加快速、便捷地創(chuàng)建高性能、跨平臺的交互式圖形程序。OSG圖形系統(tǒng),具備良好的跨平臺性,可移植性以及可擴(kuò)展性。封裝并提供了數(shù)量眾多的提升程序運(yùn)行時(shí)性能的算法、針對包括分頁數(shù)據(jù)庫在內(nèi)的幾乎所有主流數(shù)據(jù)格式的直接數(shù)據(jù)接口、以及對腳本語言系統(tǒng)Python的支持。OSG作為獨(dú)立于窗口系統(tǒng)、操作系統(tǒng)和硬件平臺的三維圖形處理技術(shù),其主要包括:
圖3 潛艇作戰(zhàn)仿真系統(tǒng)組件功能調(diào)用Fig.3 Function use of submarine combat simulation system
圖形處理、交互、窗口仿真和設(shè)備驅(qū)動等幾個(gè)方面。正因?yàn)橛幸陨蟽?yōu)點(diǎn),它在虛擬現(xiàn)實(shí)、三維可視化等方面得到廣泛應(yīng)用。
3.1 潛艇三維視景子系統(tǒng)功能需求分析
根據(jù)潛艇作戰(zhàn)過程,對三維視景子系統(tǒng)有以下功能需求:
1)以真實(shí)海洋為參考,制作接近真實(shí)效果的海洋效果,在場景遍歷時(shí)也可看到海底地形的高低起伏以及海面明暗變化。三維場景中的模型在地圖縮放時(shí)按比例進(jìn)行縮放。
2)利用3DMax、Creator等建模工具建立細(xì)致真實(shí)的實(shí)體(潛艇、艦艇、魚雷、導(dǎo)彈等)模型,模型大小、比例、色彩、圖案接近真實(shí)。其中根據(jù)航行狀態(tài)不同(水面狀態(tài)、潛望鏡狀態(tài)和水下狀態(tài)),展示不同航行狀態(tài)的潛艇三維模型。
3)海洋有動態(tài)的波浪起伏,且海洋的顏色比較逼真。通過界面控制在不同海況條件下海洋中的波浪起伏的幅度,并根據(jù)波浪起伏情況在海面上產(chǎn)生浪花[3]。
4)在場景中展現(xiàn)比較真實(shí)的爆炸效果和爆炸后的焰火效果。在場景中展現(xiàn)飛機(jī)、導(dǎo)彈、魚雷等實(shí)體經(jīng)過位置與經(jīng)過時(shí)的姿態(tài)的尾跡效果。在場景中展現(xiàn)艦艇和潛艇水面航行時(shí)的尾跡效果。
5)用戶可通過對鍵盤和鼠標(biāo)的操作實(shí)現(xiàn)在三維場景中的漫游、切換跟隨的實(shí)體、更改與跟隨實(shí)體的觀察距離與角度等。通過菜單選項(xiàng)或控制面板進(jìn)行“自由觀察”、“跟隨觀察”以及“定點(diǎn)觀察”等視點(diǎn)觀察方式的設(shè)置。
3.2 潛艇三維視景子系統(tǒng)設(shè)計(jì)方案
三維視景軟件的基本技術(shù)方案是在OSG開源三維引擎的基礎(chǔ)上封裝海量地形的加載及三維模型、軍標(biāo)的處理等方法。支持各類仿真實(shí)體、特效顯示。切換觀察視角模式實(shí)現(xiàn)不同的三維展示效果[4]??傮w的技術(shù)路線如圖4所示。
圖4 三維視景技術(shù)路線圖Fig.4 3D scene technology way
三維視景主要實(shí)現(xiàn)對潛艇作戰(zhàn)顯示及態(tài)勢環(huán)境的渲染功能。其中主要包括實(shí)體的管理,視點(diǎn)的管理以及特效的渲染等功能。場景的初始化與外部想定建模系統(tǒng)及實(shí)體編輯有密切關(guān)系。場景中實(shí)體的驅(qū)動數(shù)據(jù)來源于潛艇作戰(zhàn)仿真子系統(tǒng),三維視景軟件的功能結(jié)構(gòu)如圖5所示。
圖5 三維視景功能結(jié)構(gòu)圖Fig.5 3D scene function stucture
3.3 潛艇三維視景子系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì)
潛艇三維視景子系統(tǒng)軟件結(jié)構(gòu)如圖6所示。
圖6 三維視景子系統(tǒng)軟件結(jié)構(gòu)Fig.6 3D scene system software structure
3.3.1 MainWindow
該部分為潛艇三維視景子系統(tǒng)的主窗口,是軟件的主界面部分,是用戶與系統(tǒng)交互的媒介。主要包括菜單欄,工具欄,狀態(tài)欄等。還包括仿真實(shí)體機(jī)實(shí)例的樹形或其他形式的展示控件以及實(shí)體屬性等的顯示。
3.3.2 Viewer3D
三維視景軟件的窗口渲染的最終實(shí)現(xiàn)類為Viewer3D類??梢暬@示軟件通過Viewer3D類加載地形。根據(jù)外部想定建模系統(tǒng)提供的想定數(shù)據(jù),初始化戰(zhàn)場態(tài)勢,構(gòu)建系統(tǒng)場景。并以三維模型的方式來展示實(shí)體的運(yùn)行效果,同時(shí)展示天空、白云、海底等自然特效,并實(shí)現(xiàn)具體的實(shí)體特效,如尾跡、火焰、煙霧等的渲染功能。
3.3.3 EntityMgr
實(shí)體管理,構(gòu)建基本數(shù)據(jù)類型對場景內(nèi)的各實(shí)體以及實(shí)例集進(jìn)行統(tǒng)一管理,包括各實(shí)體的數(shù)據(jù)更新等。該部分依賴于想定解析模塊、實(shí)體解析模塊以及數(shù)據(jù)通信模塊。
3.3.4 SpecialEffects
特效管理,基于OSG構(gòu)建具體的特殊效果。對自然特效和實(shí)體特效統(tǒng)一管理。主要包括海洋效果,海浪效果,煙霧效果,火焰效果,爆炸碎片效果,尾跡效果等。
3.3.5 AudioEffects
聲音特效,基于OSG構(gòu)建場景的聲音效果。主要包括兩類聲音效果:一種是普通音效,不隨距離等因素變化;一種是具有“多普勒”效果的聲音展示,聲音隨著距離的遠(yuǎn)近變大變小,聲調(diào)隨著距離和速度的變化變高變低。
3.3.6 ScenarioParse
想定解析,該部分依賴于系統(tǒng)外部的想定建模系統(tǒng)。主要用于初始化場景時(shí),解析外部想定。想定以XML格式文件提供,其中可能包含了有關(guān)實(shí)體的信息,實(shí)體種類的名稱,該類實(shí)體的一些基本屬性信息;還包含仿真所用到的具體實(shí)體的實(shí)例信息,例如實(shí)例的名稱,初始經(jīng)緯度,高度,姿態(tài),狀態(tài)等信息。三維顯示通過對想定的解析來構(gòu)造三維場景。
3.3.7 DataCommunications
數(shù)據(jù)通信模塊,在潛艇作戰(zhàn)仿真的過程中,潛艇作戰(zhàn)仿真子系統(tǒng)會實(shí)時(shí)將各實(shí)體實(shí)例的運(yùn)動信息,姿態(tài)信息,狀態(tài)信息等發(fā)送給潛艇三維視景軟件,從而實(shí)現(xiàn)三維視景的動態(tài)效果。
3.3.8 ObserverMgr
視點(diǎn)管理,在三維視景顯示過程中實(shí)現(xiàn)觀察視點(diǎn)管理功能。主要有2種視點(diǎn)模式,分別是:漫游模式和跟隨模式。該部分功能依賴于主界面的工具欄,同時(shí)也依賴于三維視景顯示界面內(nèi)的視點(diǎn)操縱器。
4.1 系統(tǒng)運(yùn)行組成
潛艇作戰(zhàn)三維視景仿真系統(tǒng)由潛艇作戰(zhàn)仿真子系統(tǒng)和三維視景子系統(tǒng)2部分組成,二者間組建在同一個(gè)局域網(wǎng),通過UDP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信[5],具體系統(tǒng)組成如圖7所示。
在本系統(tǒng)中,所有的模型組件都部署在JavaEE仿真服務(wù)器中,由仿真管理單元負(fù)責(zé)模型的管理、部署,通過仿真想定編輯來驅(qū)動一次仿真,執(zhí)行顯
圖7 潛艇作戰(zhàn)三維視景仿真系統(tǒng)組成Fig.7 The form of submarine combat 3D scene simulation system
示計(jì)算機(jī)負(fù)責(zé)監(jiān)聽仿真過程中產(chǎn)生的實(shí)體數(shù)據(jù),并把實(shí)體數(shù)據(jù)以網(wǎng)絡(luò)通信的方式傳給三維視景單元,來驅(qū)動三維視景軟件的運(yùn)行[6]。
4.2 通信數(shù)據(jù)設(shè)計(jì)
三維視景軟件由潛艇作戰(zhàn)仿真過程數(shù)據(jù)驅(qū)動,通信數(shù)據(jù)結(jié)構(gòu)必須滿足通信需要。本系統(tǒng)通信數(shù)據(jù)包括事件數(shù)據(jù)和實(shí)體數(shù)據(jù)兩類。事件數(shù)據(jù)用于特效渲染,實(shí)體數(shù)據(jù)用于驅(qū)動實(shí)體運(yùn)動。每一幀數(shù)據(jù)結(jié)構(gòu)內(nèi)容如圖8所示。
圖8 通信數(shù)據(jù)結(jié)構(gòu)Fig.8 Communication data structure
4.3 系統(tǒng)總體框架及運(yùn)行效果
潛艇作戰(zhàn)仿真子系統(tǒng)在Windows平臺上基于Netbeans開發(fā)環(huán)境,采用Java語言實(shí)現(xiàn),三維視景子系統(tǒng)在Windows平臺上基于VC++開發(fā)環(huán)境,采用C++語言實(shí)現(xiàn)。系統(tǒng)總體框架如圖9所示。
圖9 系統(tǒng)總體框架Fig.9 System frame
本系統(tǒng)將在3DMax建模軟件中建立的潛艇、艦艇、魚雷、導(dǎo)彈等實(shí)體模型以及海面、水下、天空等環(huán)境模型導(dǎo)入以O(shè)SG引擎為平臺的軟件系統(tǒng)中。同時(shí)接收由潛艇作戰(zhàn)仿真子系統(tǒng)在仿真過程中實(shí)時(shí)產(chǎn)生的事件數(shù)據(jù)和實(shí)體數(shù)據(jù),并對實(shí)體運(yùn)動數(shù)據(jù)進(jìn)行插值平滑處理,顯示所有作戰(zhàn)實(shí)體的運(yùn)動姿態(tài),然后實(shí)時(shí)渲染作戰(zhàn)海洋環(huán)境,同時(shí)發(fā)出作戰(zhàn)過程中導(dǎo)彈發(fā)射、武器命中、爆炸等聲音。潛艇作戰(zhàn)三維視景實(shí)現(xiàn)效果如圖10所示。
圖10 潛艇作戰(zhàn)三維視景實(shí)現(xiàn)效果Fig.10 Submarine combat 3D scene realization effect
本文采用JavaEE/EJB體系結(jié)構(gòu),建立了基于組件技術(shù)的潛艇作戰(zhàn)仿真子系統(tǒng),同時(shí)建立了3DMax建模軟件和OSG圖像渲染引擎相結(jié)合的三維視景子系統(tǒng),二者通過網(wǎng)絡(luò)通信連接,共同組成了潛艇作戰(zhàn)三維視景仿真系統(tǒng)。仿真中用到的各種SDK均開放源代碼,具有良好的平臺移植性。實(shí)踐證明,本系統(tǒng)既可以有效解決潛艇作戰(zhàn)模型重用性問題,又可以逼真地模擬出潛艇、艦艇等實(shí)體的運(yùn)動姿態(tài),以及形象地渲染出海洋環(huán)境,達(dá)到了虛擬現(xiàn)實(shí)要求的沉浸感。
[1] 陸銘華,王永潔.基于組件的反艦導(dǎo)彈作戰(zhàn)仿真系統(tǒng)研究[J].戰(zhàn)術(shù)導(dǎo)彈技術(shù),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] 項(xiàng)杰,靳媛媛,李愛光.OSG中三維場景構(gòu)建的關(guān)鍵技術(shù)[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] 劉征宇,瞿永翠.海戰(zhàn)場視景實(shí)時(shí)生成技術(shù)研究[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的三維仿真平臺的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(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] 何金花,彭俠夫,王鶯.船舶運(yùn)動視景仿真系統(tǒng)研究[J].計(jì)算機(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].指揮信息系統(tǒng)與技術(shù),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-),男,博士后,研究方向?yàn)樽鲬?zhàn)仿真技術(shù)。
TP391.9
A
1672-7649(2014)11-0132-05
10.3404/j.issn.1672-7649.2014.11.027