鄭 濤,徐曉剛
(海軍大連艦艇學(xué)院 裝備與自動(dòng)化系 遼寧 大連 116018)
隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,虛擬現(xiàn)實(shí)技術(shù)已經(jīng)被廣泛應(yīng)用于各個(gè)不同領(lǐng)域,如:文化教育、工業(yè)設(shè)計(jì)、公共安全、醫(yī)學(xué)等。特別是在需要消耗大量人力、物力和財(cái)力的具有高度危險(xiǎn)性領(lǐng)域,如軍事和航空航天領(lǐng)域[1]。國外早已開始將虛擬戰(zhàn)場(chǎng)作為軍用仿真的研究,主要的成果有美國陸軍和美國國防部高級(jí)項(xiàng)目研究計(jì)劃局共同設(shè)計(jì)的SIMNET,美國海軍研究生院開發(fā)的NPSNET,瑞典計(jì)算機(jī)科學(xué)研究所的DIVE,新加坡國立大學(xué)的BrickNet等。國內(nèi)在“863”計(jì)劃的資助下,在1996年開始虛擬軍事演練方面的應(yīng)用研究。雖然起步較晚,但是發(fā)展迅速,在虛擬戰(zhàn)場(chǎng)應(yīng)用方面取得了大量有意義的研究結(jié)果。
姚煜[2]使用基于物理建模的方法在海戰(zhàn)場(chǎng)環(huán)境中實(shí)現(xiàn)了爆炸效果的模擬,劉喜作[3]對(duì)海戰(zhàn)場(chǎng)中作戰(zhàn)對(duì)象進(jìn)行建模,提出一個(gè)通用的模型框架,應(yīng)用于某艦導(dǎo)彈模擬訓(xùn)練。張莉[4],王義濤[5]先后對(duì)虛擬海戰(zhàn)場(chǎng)環(huán)境中的戰(zhàn)斗過程進(jìn)行了模型描述。這些工作主要針對(duì)虛擬海戰(zhàn)場(chǎng)的某一特定部分進(jìn)行了研究,而戴競(jìng)[6]對(duì)整個(gè)虛擬海戰(zhàn)場(chǎng)的三維場(chǎng)景生成方法進(jìn)行了描述,曾鵬[7]分析了傳統(tǒng)海戰(zhàn)場(chǎng)仿真方法的不足,提出以數(shù)字地球平臺(tái)為基礎(chǔ)對(duì)大規(guī)模虛擬海戰(zhàn)場(chǎng)環(huán)境進(jìn)行模擬。吳晶[8]提出基于OpenGL平臺(tái)的虛擬海戰(zhàn)場(chǎng)仿真。
筆者提出以Torque 3D引擎[9]為平臺(tái),搭建一個(gè)通用虛擬海戰(zhàn)場(chǎng)場(chǎng)景。區(qū)別于以往只針對(duì)虛擬海戰(zhàn)場(chǎng)單一效果的模擬和創(chuàng)建整個(gè)虛擬海戰(zhàn)場(chǎng)場(chǎng)景的大量底層編碼工作,該方法有效利用Toque 3D引擎平臺(tái)快速創(chuàng)建虛擬海戰(zhàn)場(chǎng),調(diào)整相應(yīng)的參數(shù),實(shí)現(xiàn)虛擬海戰(zhàn)場(chǎng)場(chǎng)景的變換,使用TorqueScript腳本語言,可針對(duì)指定功能快速添加功能模塊。
虛擬海戰(zhàn)場(chǎng)通常指利用計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù),基于一定的硬件平臺(tái),對(duì)海軍海上作戰(zhàn)領(lǐng)域的各種環(huán)境、氣候、武器裝備和兵力部署等進(jìn)行逼真模擬的場(chǎng)景,包括對(duì)戰(zhàn)爭規(guī)律和戰(zhàn)爭指導(dǎo)規(guī)律兩個(gè)方面的內(nèi)在的戰(zhàn)爭本質(zhì)規(guī)律模擬,核心是創(chuàng)造一個(gè)貼近實(shí)戰(zhàn)的海戰(zhàn)場(chǎng)訓(xùn)練環(huán)境[10]。虛擬海戰(zhàn)場(chǎng)環(huán)境通常由以下幾個(gè)模塊組成:
1)海洋自然環(huán)境 海洋自然環(huán)境主要包括海洋地形地貌和地表特征。海洋地形指海底或河床的一部分,其地勢(shì)起伏可測(cè)或具有明顯的地形輪廓。海洋地形數(shù)據(jù)的主要來源是海洋地理信息數(shù)據(jù)。地物主要指水下的障礙物和水面的助航標(biāo)識(shí)物以及海岸的實(shí)體信息。
2)海洋氣象環(huán)境 海洋氣象環(huán)境主要指大氣中所產(chǎn)生的各種物理現(xiàn)象,如降水、霧、煙塵、雷電、風(fēng)暴等。與陸地相比,海洋氣象具有多態(tài)性、時(shí)變性的突出特點(diǎn),海戰(zhàn)場(chǎng)對(duì)氣象變化更為敏感,海戰(zhàn)場(chǎng)氣象環(huán)境對(duì)于作戰(zhàn)效能的發(fā)揮和最終戰(zhàn)果具有直接影響。
3)海戰(zhàn)特效模塊 現(xiàn)代海戰(zhàn)中導(dǎo)彈等武器的使用必然伴隨著大量的爆炸、火焰、煙霧和水柱等效果的產(chǎn)生。每一次的爆炸、武器的發(fā)射都會(huì)產(chǎn)生相應(yīng)的聲音。為了增強(qiáng)虛擬海戰(zhàn)場(chǎng)的逼真度,引入特效模塊,包括聲音特效。
4)實(shí)體模型 海戰(zhàn)包括各個(gè)作戰(zhàn)實(shí)體,有動(dòng)態(tài)實(shí)體和靜態(tài)實(shí)體。如訓(xùn)練人員操控的艦艇、武器裝備以及擁有人工智能的假想敵。靜態(tài)實(shí)體主要有燈塔、建筑物和礙航物等。
Torque 3D引擎是一款面向?qū)ο?、功能齊全的基于C++的游戲引擎,由美國的InstantAction公司開發(fā)發(fā)布。使用Torque 3D引擎可以節(jié)省大量用于創(chuàng)建復(fù)雜渲染系統(tǒng)、高速網(wǎng)絡(luò)、實(shí)時(shí)編輯器和腳本系統(tǒng)的時(shí)間[11]。由于游戲引擎的高效和一定的通用性,已經(jīng)被廣泛應(yīng)用于三維虛擬場(chǎng)景仿真中,以下就基于Torque 3D引擎的虛擬海戰(zhàn)場(chǎng)場(chǎng)景構(gòu)建做相應(yīng)的介紹。
地形是地貌(如丘陵)和地表覆蓋物(如草地)的綜合體,一般地貌由一個(gè)3D模型建模而成,地表覆蓋物則用紋理來表現(xiàn)[12]。Torque 3D中對(duì)地形的建模主要有兩種方法:一是使用Torque 3D引擎自帶的Terrain Editor(地形編輯器),該方法可以直接對(duì)地形模型進(jìn)行旋轉(zhuǎn)、扭曲、拉伸、凹陷等操作,隨意性很大,主要用于生成虛構(gòu)性的場(chǎng)景;二是使用數(shù)字高程模型 (Digital Elevation Model,DEM) 創(chuàng)建地形。 雖然Torque 3D只支持導(dǎo)入高度圖生成地形,但可以通過第三方軟件將DEM數(shù)據(jù)轉(zhuǎn)化為高度圖后導(dǎo)入Torque 3D生成真實(shí)地形。
圖1 地形效果Fig.1 The effect of terrain
根據(jù)虛擬海戰(zhàn)場(chǎng)的特點(diǎn),使用DEM數(shù)據(jù)的方式來生成海戰(zhàn)場(chǎng)地形。DEM數(shù)據(jù)從中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心科學(xué)數(shù)據(jù)中心[13]獲取,按地形經(jīng)緯度下載某確定地形的數(shù)據(jù),以旅順地形為例,下載包含東經(jīng)121度北緯38度的數(shù)據(jù)塊,后綴名為.img,應(yīng)用Global_mapper和Wilbur兩個(gè)軟件將數(shù)據(jù)轉(zhuǎn)化為高度圖,高度圖的后綴名為.png,導(dǎo)入Torque 3D引擎,生成地形。圖1為生成的旅順地形的部分效果。
海洋天氣環(huán)境包括基本的天空、云層和雨、雪、霧等具體的天氣情況。Torque 3D引擎使用天空體(skybox)來創(chuàng)建天空[14],天空體是一個(gè)包圍視點(diǎn)的立方體,視點(diǎn)位于立方體中間,無論視點(diǎn)視角如何變化,都能看到相應(yīng)的天空,天空體由前后左右上下6張?zhí)炜占y理圖片組成,為了保證視野內(nèi)的天空巨大且沒有縫隙,必須保證6張?zhí)炜占y理無縫、相鄰邊匹配以及有正確的透視。為了保證天空中的云彩具有層次感和隨機(jī)運(yùn)動(dòng)效果,Torque 3D引擎使用三層不同高度的云彩紋理圖片來表示,每一層都設(shè)置相應(yīng)云彩紋理和紋理屬性。圖2(a)為生成的晴朗的天空效果。
對(duì)于雨、雪、霧、閃電等天氣效果,Torque 3D引擎使用粒子系統(tǒng)和紋理結(jié)合的方式來實(shí)現(xiàn),如雨,根據(jù)雨的大小設(shè)定粒子數(shù)目的多少,并且給每個(gè)粒子貼上相應(yīng)的雨滴紋理。閃電效果直接使用紋理圖片,為了保證不是始終在同一個(gè)位置產(chǎn)生,對(duì)位置坐標(biāo)引入隨機(jī)數(shù)。圖2(b)為生成的雨天和閃電效果。
圖2 晴朗的天空和雨天閃電效果Fig.2 The clear sky and lighting
Toque 3D引擎中包含強(qiáng)大的物理系統(tǒng)和粒子系統(tǒng)。對(duì)于海戰(zhàn)場(chǎng)特效的模擬通常使用粒子系統(tǒng)來實(shí)現(xiàn),粒子系統(tǒng)一般由 3個(gè) 數(shù)據(jù)塊 組 成 , 如 ParticleData,ParticleEmitterData,ExplosionData3個(gè)數(shù)據(jù)塊可組成一個(gè)爆炸效果的粒子系統(tǒng),數(shù)據(jù)塊ParticleData定義了粒子的基本屬性,如紋理、減速度、生存時(shí)間、旋轉(zhuǎn)速度、顏色、大小。ParticleEmitterData是粒子發(fā)射器,定義了粒子的發(fā)射周期、初始發(fā)射速度、發(fā)射方向和發(fā)射角度范圍等。ExplosionData綜合了多種粒子發(fā)射器,爆炸如果只是單純使用一種粒子的話,很難達(dá)到理想效果,為了增強(qiáng)逼真度,一般會(huì)設(shè)定多種粒子效果,而ExplosionData數(shù)據(jù)塊就起到了協(xié)調(diào)各種粒子的作用,參數(shù)Emitter[]為一個(gè)數(shù)組,包含了該爆炸效果包含的所有粒子,參數(shù)soundProfile設(shè)定發(fā)生爆炸時(shí)伴隨的爆炸聲響數(shù)據(jù)塊,參數(shù)particleDensity和particleRadius分別設(shè)定了粒子發(fā)射密度和發(fā)射半徑。圖3為使用Torque3D粒子系統(tǒng)生成的爆炸效果。
對(duì)于聲音特效,Torque 3D引擎使用OpenAL應(yīng)用程序接口,使用數(shù)據(jù)塊SFXProfile定義聲音效果,參數(shù)filename、description和preload分別設(shè)定了聲音文件所在位置和是否使用3D音效以及是否預(yù)先載入聲音文件,一般用于模擬爆炸聲響。
圖3 爆炸效果Fig.3 The effect of explosion
Torque 3D引擎支持3種3D模型格式,有DTS(Dynamix Three Space),COLLADA(COLLAborative Design Activity),DIF(Dynamix Interior File)。DTS是主要的模型格式,可以將3DMAX生成的模型通過插件轉(zhuǎn)化為DTS格式。Torque官方提供dae2dts轉(zhuǎn)換軟件,將COLLADA格式的DAE文件轉(zhuǎn)化為DTS格式文件。而DIF主要是針對(duì)建筑物等其他有內(nèi)部空間的模型文件。虛擬海戰(zhàn)場(chǎng)中,可以放置艦艇、飛機(jī)、坦克、軍事工地等模型,并且通過添加AI控制相應(yīng)模型按路徑移動(dòng)用以增強(qiáng)真實(shí)感。
常規(guī)的海上訓(xùn)練經(jīng)費(fèi)高、周期長、風(fēng)險(xiǎn)大,特別是海上天氣狀況和國際政治環(huán)境等不可控因素較多,增加了海上進(jìn)行實(shí)際操作訓(xùn)練的難度。虛擬現(xiàn)實(shí)技術(shù)以其在軍事訓(xùn)練演習(xí)上特有的經(jīng)濟(jì)性、實(shí)時(shí)性和可操控性等優(yōu)點(diǎn),被廣泛應(yīng)用于虛擬戰(zhàn)場(chǎng)演練,幫助軍隊(duì)進(jìn)行輔助訓(xùn)練,提高訓(xùn)練效果。筆者論述了以Torque 3D引擎為平臺(tái)構(gòu)建通用虛擬海戰(zhàn)場(chǎng)的方法,并在普通PC機(jī)上實(shí)現(xiàn)仿真,實(shí)驗(yàn)結(jié)果表明本文方法具有良好的實(shí)時(shí)性和通用性。
[1]趙沁平.虛擬現(xiàn)實(shí)綜述 [J].中國科學(xué) (F輯)信息科學(xué),2009,39(1):2-46.
ZHAO Qin-ping.Survey on virtual reality[J].Science in China (Series F):Information Sciences, 2009,39(1):2-46.
[2]姚煜,林劍檸,王弈,等.虛擬海戰(zhàn)場(chǎng)環(huán)境中爆炸效果的實(shí)現(xiàn)[J].華東船舶工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2001,15(6):44-47.
YAO Yu, LIN Jian-ning, WANG Yi, et al.Realization of the explosion in virtual sea battlefield [J].Journal of East China Shipbuilding Institute:Natural Science,2001,15 (6):44-47.
[3]劉喜作,徐曉剛.虛擬海戰(zhàn)場(chǎng)中作戰(zhàn)對(duì)象仿真模型研究[J].系統(tǒng)仿真學(xué)報(bào),2006,18(S2):398-402.
LIU Xi-zuo,XU Xiao-gang.Research on virtual combat simulation model of naval battle space[J]. Journal of System Simulation, 2006,18(S2):398-402.
[4]張莉,劉春林.虛擬海戰(zhàn)場(chǎng)環(huán)境中的戰(zhàn)斗過程仿真模型[J].計(jì)算機(jī)仿真,2003,20(8):23-25.
ZHANG Li,LIU Chun-lin.Combat process simulation model in virtualnavalbattle space[J].ComputerSimulation,2003,20(8):23-25.
[5]王義濤,張莉.虛擬海戰(zhàn)場(chǎng)環(huán)境中的戰(zhàn)斗過程仿真模型[J].艦船電子工程,2007,27(4):138-140.
WANG Yi-tao,ZHANG Li.Combat process simulation model in virtual naval battle space[J].Ship Electronic Engineering,2007,27(4):138-140.
[6]戴競(jìng),顧浩,翟永翠,等.虛擬海戰(zhàn)場(chǎng)中場(chǎng)景生成與實(shí)時(shí)顯示技術(shù)研究[J].計(jì)算機(jī)仿真,2006,23(12):4-8.
DAI Jing, GU Hao, ZHAI Yong-cui, et al.Research and realization of visual system in virtual ocean battlefield [J].Computer Simulation,2006,23(12):4-8.
[7]曾鵬,陳長征,李蘇軍.基于數(shù)字地球的虛擬海戰(zhàn)場(chǎng)環(huán)境仿真[J].計(jì)算機(jī)工程,2009,35(8):269-270,273.
ZENG Peng, CHEN Chang-zheng, LI Su-jun.Simulation of virtual sea battlefield environment based on digital earth[J].Computer Engineering,2009, 35(8):269-270,273.
[8]吳晶,王瑜,許玲,等.基于OpenGL平臺(tái)的虛擬海戰(zhàn)場(chǎng)仿真[J].火力與指揮控制,2009,34(S1):52-57.
WU Jing, WANG Yu, XU Ling, et al.Visual simulation of virtual sea battlefield based on OpenGL[J].Fire Control and Command Control, 2009,34(S1):52-57.
[9]GarageGames.Torque 3D[EB/OL].[2011-09-13].http://www.garagegames.com/products/torque-3d.
[10]劉丹丹.基于HLA的虛擬海戰(zhàn)場(chǎng)仿真[D].哈爾濱:哈爾濱工程大學(xué),2007.
[11]陳占鋒.Torque游戲引擎及腳本技術(shù)的應(yīng)用研究[D].重慶:重慶大學(xué),2008.
[12]Finney K C.3D游戲開發(fā)大全(高級(jí)篇)[M].徐明亮,谷培培,譯.北京:清華大學(xué)出版社,2007.
[13]中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心.SRTM90米分辨率原始高程數(shù)據(jù)[EB/OL].[2011-09-13].http://datamirror.csdb.cn/.
[14]Finney K C.3D游戲開發(fā)大全[M].肖逸,齊蘭博,譯.北京:清華大學(xué)出版社,2005.