??????? 1 引言
數字化戰場[1]是繼“信息戰”概念出現之后, 作為信息戰建設的初期階段而提出的一種新的戰場形態,其本質是將數字化技術引入部隊和戰場,將所有相關功能系統通過網絡聯結成一個有機整體,以達到整個作戰范圍內的信息資源共享,最終實現部隊和戰場的指揮、控制、通信和情報(即C3I)高度一體化
虛擬戰場環境[3]是戰場可視化仿真的運行基礎,虛擬戰場環境的生成主要包括場景建模和場景驅動兩個步驟。虛擬戰場環境主要由戰場地形模型、戰場地物模型、武器模型、士兵模型等三維模型組成,可以使用以MultiGen Creator[4]為代表的仿真建模軟件包來完成,虛擬場景驅動則可以通過特定的渲染引擎來實現,常用的渲染引擎有Vega、Performer、 OpenGVS等。
?????? 本文將要主要討論的Vega是一套完整地用于開發交互式、可視化仿真應用的軟件平臺和工具集,它最基本的功能就是驅動、控制、管理虛擬場景并能夠方便的實現大量特殊視覺和聲音效果。
???????需要指出的是,本文實現的虛擬戰場仿真離嚴格意義上的可視化戰場還有一定的距離,下一步的工作一方面是對虛擬戰場環境繼續豐富和完善,添加虛擬士兵等更復雜的仿真實體,加入逼真的三維聲場,提高參與者的沉浸感,另一方面還要進一步研究虛擬戰場環境仿真的分布式網絡化應用和對各種底層信息數據庫的集成等,最終形成一個完整的數字化戰場環境系統。
2 仿真目標和解決方案
確定仿真目標是仿真應用的首要環節,也是進行仿真應用程序開發的基礎。本文中我們通過模擬發生在一個虛擬小鎮上假想的軍事武裝對抗過程,詳細討論基于Vega的軍事仿真應用方法、實現及其關鍵技術。假想的虛擬作戰對抗仿真過程大致如下:一架E2C預警機在小鎮高空中盤旋,執行日常的偵察預警任務。一輛不明身份的M1主戰坦克悄悄的從邊境潛入小鎮,不久便被E2C預警機發現并鎖定目標,通知駐守在小鎮中的阿帕齊武裝直升機前往堵截,并發射激光制導導彈將其摧毀。預警機左翼發動機突然出現機械故障,起火燃燒,最終落地墜毀并引發了劇烈的爆炸,隨后直升機趕往墜毀地點進行救援。
通過對預定仿真目標的分析可知,要實現設想的仿真效果需要分別代表E2C預警偵察機、M1主戰坦克、阿帕齊武裝直升機、制導導彈等虛擬戰場環境中的動態元素模型,同時還需要用于模擬旋轉的機翼、發動機和導彈等產生的尾跡、坦克和直升機發生的爆炸、燃燒、煙霧等的特殊效果。虛擬戰場環境的三維模型數據庫我們使用了預先創建好的OpenFlight模型,E2C預警機的運動完全由仿真應用程序控制,坦克入侵路線可以使用Vega的路徑工具事先定義導航路徑來控制,而武裝直升機的起降、導彈的發射和預警機的失事則通過仿真應用程序與用戶通過鼠標和鍵盤來交互控制。由于導彈發射和預警機墜落時間的不確定性,導彈的運動軌跡和直升機的救援路線則需要在仿真過程中實時的生成。為了更好的反映當前的仿真應用運行情況和虛擬戰場態勢,仿真應用過程中相關的戰場信息需要實時的顯示在屏幕上。
運行基于Vega的仿真應用程序需要在初始化階段設置大量參數的初始值,包括虛擬場景內各種模型對象和角色對象的起始狀態和位置、虛擬場景內的燈光和環境的設置、硬件平臺的屬性配置等,在運行階段也要保持或更新大量的參數值。Vega將這些數據信息儲存為ADF格式的應用程序定義文件,可以使用Vega提供的LynX[5]圖形界面ADF配置和預覽工具,初始化虛擬場景中的元素屬性及其相互關系。
3 系統實現關鍵技術
3.1 自然環境模擬
自然環境對戰場態勢發展和對戰雙方的作戰指揮等有著重要的影響,虛擬戰場場景中的自然環境表達直接關系到仿真應用的真實性和可信度。為了能夠逼真的模擬出自然界中的大氣層環境,Vega 使用了如圖1所示的七層結構的大氣層模擬模型,同時還提供了多種可由參數控制的自然環境效果,我們可以直接在相應的LynX面板中對包括天空顏色、霧模型、云彩模型、環境光等在內的多種元素進行預設,在應用程序執行的過程中還可以通過調用相應的API函數[6]對自然環境的各種參數進行交互式設置,實時改變虛擬戰場的自然環境效果,從而達到檢驗不同自然條件下作戰效能之目的。
3.2 動態視點控制
視點是仿真系統用戶觀察虛擬場景的唯一接口,包含了對視點進行抽象的觀察者(Vega Observer)是用戶在虛擬場景中的替身,觀察者的位置和姿態決定了整個虛擬戰場環境可以提供給用戶的信息。一方面要縱觀作戰戰場全局給用戶特別是指戰員提供一個視野寬廣的虛擬環境,另一方面又要考慮能夠以與動態仿真實體相一致的視角來觀察虛擬作戰環境,從而獲得更好的沉浸感。一般而言,虛擬戰場環境范圍較大、仿真實體數量多且運動狀態復雜多變,所以視點應該能夠盡可能的進行多角度、多模式觀察,可以采用多觀察者方案,即一個主要觀察者和若干個輔助觀察者。我們在應用程序中使用了Vega基本模塊提供的形式多樣的觀察者定位方式,包括跟隨、綁定、旋轉、固定路徑、觀望等多種模式及其混合模式,使用者可以通過彈出菜單或快捷鍵在多個觀察者之間進行實時切換和組合,以滿足使用者的不同需求。表1中給出了不同狀態下主要觀察者的定位方式:
3.3 實時路徑導航
路徑導航在戰場對抗仿真中有著大量的應用,對戰前期的戰斗部隊、坦克編隊等的行進通常是沿著固定或者相對固定的路線進行進的,對戰過程中的以制導導彈為代表的火炮武器炮彈在發射后也都會按照一定的路徑進行導航的。導航路徑的生成有兩種方式,一種是非實時的,即使用路徑工具(PathTool)預先定義,另一種則是實時的生成導航路徑。以導彈飛行路徑生成為例,由于直升機運動的不確定性,在發射導彈的位置和時間是隨機的,不可能事先預知導彈的運動軌跡,所以必須在仿真應用程序中實時的生成導航路徑,圖2 是生成導航飛行路徑的程序流程圖:
3.4 戰場特殊效果
在虛擬戰場模擬仿真應用中,經常需要模擬出一些特殊的三維視覺效果來增強整個虛擬戰場環境的感染力和真實性,比如各種火炮武器的開火效果、各種炸彈的爆炸效果、直升機螺旋槳的旋轉效果、導彈發射后飛行時產生的尾氣痕跡等。通常這些效果很難用傳統的多邊形建模技術來實現,一般的解決方案是應用高級的紋理技術或者使用復雜的粒子系統[7]。粒子系統的基本思想是,采用大量的、具有一定生命和各種屬性的微小粒子圖元作為基本元素來描述不規則對象。粒子系統中的每一個粒子都具有形狀、大小、顏色、透明度、運動速度、運動方向、生命周期等相關的屬性。一般而言,創建特定的粒子系統是一個比較復雜的過程,一方面要考慮真實的物理模型和相應的動力學規律,另一方面需要對粒子的大量屬性分別進行設置。Vega特殊效果模擬模塊[8]預制了包括爆炸、煙霧、導彈尾跡在內的多種實時三維特殊效果,提供了擴展的粒子系統參數設置面板,可自定義的粒子參數包括粒子生命周期、粒子個數、粒子源及其發射模式、粒子速度分布和各種速度矢量等。
戰場特效的管理和控制應該符合虛擬戰斗態勢的發展,所以一般只在特效設置面板中進行初始參數設置但并不啟用它們,而是在仿真應用運行的過程中根據實際情況,通過相應的API函數進行特效控制和參數調整。下面是預警機發動機失效時,應用程序控制特殊效果的部分代碼:
vgProp(fx_trail, VGFX_DURATION, vgGetTime()-vgGetFxTime(fx_trail1,VGFX_STARTTIME) +1.0 ); // 設置預警機引擎尾氣特效的持續時間
vgProp( fx_airhit, VGFX_STATE, VG_ON ); // 啟用預警機引擎閃光特效
vgProp( fx_engburn, VGFX_STATE, VG_ON ); // 啟用預警機引擎燃燒特效
vgProp( fx_engsmoke, VGFX_STATE, VG_ON ); // 啟用預警機引擎冒煙特效
vgProp( fx_engburn, VGFX_DURATION, VGFX_ALWAYS ); // 設置燃燒特效持續時間
vgProp( fx_engsmoke, VGFX_DURATION, VGFX_ALWAYS ); // 設置冒煙特效持續時間
vgFxTime( fx_airhit, VGFX_STARTTIME, VGFX_NOW ); // 立即執行閃光特效
vgFxTime( fx_engburn, VGFX_STARTTIME, VGFX_NOW ); // 立即執行燃燒特效
vgFxTime( fx_engsmoke, VGFX_STARTTIME, VGFX_NOW ); // 立即執行冒煙特效
評論
查看更多