王 磊,林志強,嚴其飛
(國防科技大學信息通信學院,湖北武漢 430010)
導彈武器的攻防對抗在現代軍事斗爭中有著特殊的意義,是許多國家在軍事領域研究的熱點。研究導彈攻防仿真一方面可通過三維視景的方式逼真顯示戰場的實時態勢,為戰場指揮員進行輔助決策提供支撐;另一方面也可通過模擬導彈攻防的實際作戰效果,對導彈作戰效能進行評估[1]。
導彈攻防仿真系統中通常包含敵我雙方的導彈武器以及我方導彈預警偵測系統、指揮控制系統、作戰效能評估系統等多個仿真實體,且多個實體之間存在實時交互。針對這類大規模復雜系統,常規的仿真體系架構很難滿足分步式仿真中各系統的互操作性。為解決這一問題,美國國防建模與仿真辦公室于1996年正式提出了高層體系結構(HLA,High Level Architecture)的定義和規范,該仿真架構很好的實現了分步式仿真的互操作性與可重用性,被認為是未來建模/仿真的共同技術框架[2-5]。
除了仿真體系架構,視景仿真技術也是實現導彈攻防仿真系統的關鍵部分。近年來,三維可視化仿真技術得到了蓬勃發展,陸續出現了一系列可視化仿真軟件,比如STK、Vega/Vega Prime、Mimics、Amira/Avizo等。但不同軟件應用場景各有側重,STK主要用于模擬衛星或其它飛行器的運動,Mimics和Amira/Avizo主要用于數據的可視化顯示,Vega或Vega Prime是基于OpenGL技術開發的一種用于實時仿真及三維可視化顯示的高性能軟件環境和工具,已在戰場環境仿真、攻防對抗仿真等領域得到了廣泛應用[6-11]。
本文基于HLA和Vega構建了導彈攻防對抗的分步式仿真系統,模擬了藍紅雙方的導彈進攻與反擊的對抗過程,用于整個作戰體系的演示以及作戰效能的評估。
戰場想定可描述為:藍方發射導彈進行攻擊,紅方預警衛星(同步高軌衛星、低軌衛星)和預警雷達偵測到藍方的攻擊,并將危險警報信息傳給地面指控中心,指控中心進行決策并下達反擊命令,隨后紅方導彈發射進行戰略反擊。
根據戰場想定,構建導彈預警反擊系統虛擬仿真平臺,其結構如圖1所示。本仿真系統聯邦主要由以下聯邦成員組成:白方綜合評估成員、紅方預警衛星成員、紅方預警雷達成員、指揮控制系統成員、紅方導彈成員、藍方導彈成員等6個聯邦成員。各個聯邦成員的功能如下:

圖1 系統聯邦成員組成框圖
1)白方綜合評估聯邦成員:對仿真初始狀態進行設定,運行RTI并創建聯邦,并負責整個仿真的啟動與結束。同時綜合所有戰場信息,評估整個戰場態勢,并最終輸出評估結果。
2)紅方預警衛星聯邦成員:預警衛星為同步高軌衛星和低軌衛星兩種對象。高軌衛星實時接收藍方導彈對象的飛行數據,并依據預警衛星偵查模型計算出當前預警衛星的工作狀態(偵查、捕獲、丟失目標)并實時傳輸給地面指控中心。低軌衛星在接收地面指控中心的偵查指令后開始在指定空域搜索偵查,同樣實時輸出其狀態(偵查、捕獲、跟蹤、丟失目標)。實現基于Vega的三維偵查場景顯示。
3)紅方預警雷達聯邦成員:同低軌預警衛星一樣,當接收到地面指控中心的偵查指令后開始在指定空域搜索偵查,并實時輸出其工作狀態(偵查、捕獲、跟蹤、丟失目標)。
4)藍方導彈聯邦成員:藍方導彈發射場景渲染,藍方導彈彈道計算與導彈飛行場景實時顯示。
5)紅方導彈聯邦成員:當接收到指揮控制聯邦中導彈發射營對象的發射指令后開始啟動導彈彈道的實時計算模型,同時輸出二維曲線及三維視景。
6)紅方指揮控制聯邦成員:包括地面指控中心、最高統帥部、兵種部、基地、導彈旅、發射營等幾個對象。實時接收來自衛星和雷達的探測信息,根據危險警報信息的處理以及傳輸模型(包括逐級傳輸和直接傳輸),實時輸出命令傳輸狀態信息,并且動態地顯示出危險警報信息以及命令傳遞信息的二維流程圖。
Multigen Creator的OpenFlight格式數據庫可以方便地創建各種形狀的仿真模型,且這類數據模型可直接應用于Vega仿真環境中[10]。一般而言,三維模型的建立流程如圖2所示。

圖2 三維建模的基本流程
根據仿真需要,需要建立的三維模型有紅方導彈、藍方導彈、衛星、雷達、地面站、地球、紅方導彈發射場地、藍方導彈發射場地、紅方導彈彈著點場地、藍方導彈彈著點場景等。在處理導彈、衛星、雷達、地面站以及地球等仿真對象的建模時,為了增加模型逼真度通常需要使用Photoshop對其紋理、材質圖片進行處理。需要指出,三維地形的建模方法與上述其它對象的建模方法略有不同,下面主要對導彈發射場地以及彈著點場地的建模方法分別進行說明。
一般來說,導彈發射場地比較隱蔽,其真實地貌很難獲取,故而采用虛擬場景。本文采用分形地形建模法實現虛擬場景模型的建立,分形算法選用隨機中點位移法。具體建模流程如圖3所示。

圖3 紅方導彈發射場地建模流程
對于虛擬場景模型而言由于不存在實際的地形圖片,常采用高度紋理組合技術來解決。具體來說分5步完成。①遍歷整個三維地形數據,獲得每個點的高度值;②賦予不同高度的頂點不同的灰度值,這一步稱作灰度處理;③選取不同高度所對應的紋理。即將高度劃分成n個區間:(h1,h2),(h2,h3)…(hn-1,hn),為每個區間選擇對應的紋理t1,t2…tn,并將其排序;④根據灰度等級合成地形紋理;⑤將合成的地形紋理貼到地形表面。
對于彈著點場景的仿真,一般需要模型與真實地形一致。但考慮到仿真場景中彈著點場景只有在導彈離地面10000米以內才出現,而且導彈下落速度快,故而沒必要使用數據高程值進行全地形逼真建模。本文采用紋理貼圖的方式完成彈著點場地的建模。同時根據距離彈著點的距離將整個場景分為5個精度等級的紋理貼圖,即距離彈著點距離越近,紋理精度越高。這樣既能滿足視覺效果的要求,又能大大減少數據庫,從而更好的保證了仿真的實時性。建模效果如圖4所示。

圖4 彈著點場景建模效果
本文基于Vega實現導彈攻防可視化系統的開發,主要過程包括3個方面內容:首先使用Creator建立所需模型,然后利用Lynx將這些模型配置到底層模型中,最后在VC環境下編程,驅動場景實現各場景顯示功能[6]。
導彈預警反擊系統中紅方預警衛星聯邦成員、紅方預警雷達聯邦成員、紅方導彈聯邦成員以及藍方導彈聯邦成員都需要三維視景顯示。下面以紅方導彈聯邦成員為例來說明視景仿真場景的實現流程。
圖5所示為紅方導彈聯邦成員仿真系統執行流程。為了保證仿真的實時性,仿真系統采用Vega和聯邦雙線程的架構模式。仿真中,Vega線程主要基于數據進行驅動,同時可以通過設置一定的幀頻來控制仿真的實時性,而聯邦線程則通過設置一定的消息響應頻率,不斷同步更新各聯邦成員的狀態。

圖5 紅方導彈成員仿真執行流程
紅方導彈聯邦成員視景仿真場景中需要進行特效處理的有導彈的點火發射、導彈發動機的尾焰以及彈頭起爆。本文主要采用粒子系統來進行這類不規則物體的仿真模擬。應用粒子系統來實現導彈火焰、爆炸等特效效果,一方面可直接應用Vega Lynx界面中Special Effects模塊進行簡單定制,這也是最常用的方法;另外一方面則可使用OpenGL的函數庫對粒子進行繪制,由于Vega是在OpenGL的函數庫上開發而來,故而使用后者用戶可以根據需要任意繪制想要的粒子。
粒子系統的基本思想是采用大量的、具有一定生命和各種屬性的微小粒子圖元作為基本元素來對不規則對象進行描述和建模。典型粒子系統的基本屬性有:生命周期、粒子數目、粒子源、重力矢量、限定框、流動類型、速度成分、粒子大小、粒子尺寸變化量、粒子顏色、粒子顏色變化量、粒子溫度、粒子發射率、粒子光照等[10]。在實際應用中,通過Lynx界面配置這些屬性值便可生成相應的特效。圖6所示為合成粒子系統產生的導彈發射特效。

圖6 導彈發射特效圖
在進行三維場景演示時,需要根據需要設置視點所在的位置和視線方向,以便達到較好的顯示效果。Vega提供了四種視點定位方式:①手動調整方式:靜態定位方式,配置后視點位置和視線方向固定不變;②按照指定的運動模式定位(Motion Model):最直接的動態定位方式,需要之前定義好運動模式;③綁定模式(Tether):視點綁定在某一對象上,并跟隨移動,具體又可細分為Tether-Follow模式、Tether-Spin模式、Tether-Fixed模式三種;④按照固定路徑運動(Path Navigator):視點沿著提前設計的路徑運動[4]。
在導彈攻防對抗仿真系統中,在紅方導彈聯邦成員和藍方導彈聯邦成員三維顯示窗口中需要實時顯示導彈的發射和飛行狀態,因此采用Tether-Fixd模式進行視點設置。在這類場景中,觀察的目標就是導彈本身,因此需要將視點配置在導彈對象的一定偏移位置上,并將視線方向朝向導彈彈體。
為了達到更好的顯示效果,往往需要對視點位置及觀察方向進行多輪迭代選取,常規的配置過程如圖7中左邊的流程圖所示,顯然這種方式效率較低,而且很難達到最佳顯示效果。為此,本文提出一種效率更高,可動態、直觀調整觀察者參數的配置流程(如圖7中右邊流程圖所示),相比傳統視點配置過程,該配置方式的主要特點在于:①到導彈對象坐標系中將視點位置和視線方向參數化;②設置鍵盤消息響應函數,使視點位置和視線方向可在三維場景中實時調整。可見,在這種視點配置模式下,用戶可根據場景中導彈的真實顯示效果,直觀、動態地對視點位置和方向進行調整。

圖7 一般視點配置流程及優化后的視點配置流程
當到達某一時刻,或發生了某一事件,將開關變量賦值為真,同時切換到新的視點。但這種方法有時候導致視景變換不連貫的問題,從而影響顯示效果。為此,本文采用一個視點變換函數實現某些視點切換過程中的連續變換,該函數的輸入量為當前視點值viewpoint_ current、需要切換到的新的視點值viewpoint_expect,切換起始時間 beginTime,切換需要的幀數n,在執行視景變換時,仿真系統會自動將當前視點到目標視點的移動路徑進行離散化處理,而后視點按照離散化數據進行貫序配置,進而實現視點切換過程的平滑過渡。
圖9為紅方導彈聯邦成員及預警衛星聯邦成員視景仿真顯示效果截屏。該仿真是基于Windows XP操作系統和VC++6.0開發環境,使用與圖7所示類似的雙線程執行框架,采用Vega 與OpenGL API函數實現的。圖示為導彈發射穿過云層以及同步軌道衛星正在搜索可疑目標。

圖8 可視化系統現實效果圖
本論文分析并實現了一種基于HLA和Vega的分布式仿真系統。同時在視景仿真的視點配置和轉換以及畫面效果等方面也給出了優化的方法,在實際應用中這些方法都取得了比較好的效果,可為類似可視化仿真系統的設計與實現提供一定指導。