黃春營,姜 林,李 超,張 翔
(63892部隊,洛陽 471000)
軍事領域是計算機仿真應用的一個重要領域,尤其是在作戰模擬和推演方面發揮著關鍵作用。作戰模擬仿真不需要消耗武器裝備、彈藥和大量的人力資源等,不僅能夠有效地降低模擬訓練的成本,同時還可對仿真推演中的相關數據進行實時的統計記錄,并在仿真結束后對數據進行進一步分析評估,為后續的推演提供有力支撐。目前,戰場仿真推演已經成為實現戰略戰術演練的一種主流方式,利用仿真技術構建出極其逼真的戰場環境,并將場景中所需的細節及關鍵設備等進行仿真還原,能夠有效提升相關領域作戰技能和戰略水平;另外,仿真模擬也打破了自然環境及天氣條件等自然環境對訓練的約束的問題,從而極大地提升了模擬作戰的效率[1-2]。
Unity3D 游戲引擎是一款高度集成的三維游戲開發應用引擎和組合工具套件[3],不僅包括了對圖像、音頻、物理特性、粒子系統特性、網絡通訊等多種特性的支持,而且能夠適配主流3D 軟件的文件格式(3DS Max、Maya)和美工資源格式。該引擎內置的PhysX 物理系統能夠遵循物理定律,真實地模擬現實世界中物體的運動規律,從而增強系統中仿真的真實性[4]。另外,Unity3D 還具有跨平臺、人機交互性好、仿真速度快,而且支持虛擬現實設備等多種特性。
本文旨在應用Unity3D 引擎根據模塊化的思想構設一種作戰仿真推演平臺,并輔以智能語音控制和VR 設備的真實體驗,從而實現虛擬場景逼真、作戰場景豐富且交互友好的作戰仿真推演平臺。
游戲引擎指預先設計的能夠應用于游戲系統或應用的核心程序組件。引擎是用來控制所有功能的最主要模塊,從對模型的運動控制到對物體碰撞的計算以及各種物理方面的特性,都是通過引擎來實現的。當下,應用較為廣泛的開發引擎有Unreal Engine 4、CryENGINE3、Virtools、Quest3D、LabVIEW、Eon 與Unity3D等,綜合比較各引擎的跨平臺特性、協同性、畫面顯示效果、操作難度、兼容性和擴展性等一系列特性,結合自身需求,應用Unity3D 來進行仿真推演平臺的研發是比較理想的選擇[5-6]。
Unity3D平臺的應用特性如下:
(1)資源可植入性高。Unity3D 能夠應用絕大多數常見格式的資源,配合其它相關的建模類的、動畫制作類的、仿真類的應用程序,可以導入多種類型的模型、紋理、材質、動畫效果、音頻、視頻等各類資源,為仿真模擬對應的功能打下基礎。
(2)跨平臺性。Unity3D 充分體現了面向對象的編程思想,其開發的項目可以跨Windows、Android、OSX、IOS 等多平臺進行一鍵式發布,從PC 到MAC 乃至到移動終端,Unity 平臺的應用極其廣泛,在滿足不同平臺要求方面有獨特的優勢。
(3)開發便捷。Unity3D 具有可視化的編輯開發能力,用戶能夠直接有效控制和編輯模型、動畫等資源,且具有良好的編程環境,代碼編寫應用方便,自帶有物理引擎,可為模型對象賦予真實的物理屬性,在物理模擬仿真方面具有極大的優勢。
仿真環境搭建是計算機仿真推演的基礎,主要包括仿真所需地形的創建,仿真試驗中模型的生成,環境和粒子特效的生成以及用戶界面設計等。
仿真環境中地形的創建一般分為兩種情況,一種是設計人員根據自己的想象通過Terrain 工具進行繪制,由于沒有與真實地形進行關聯,這種方式繪制的地形經常用于三維游戲開發;另一種就是根據真實世界的地形來繪制構建仿真環境中的地形,常見的是基于數字高程模型(digital elevation model,DEM)地形建模技術進行真實地形的創建[7-8]。由于DEM 保存了真實地形的基礎數據,基于DEM 的地形建模技術能夠真實有效地模擬出仿真所需的地形。
基于DEM的地形構建流程如圖1所示。
建立坑塘進排水分家系統,形成“長藤結瓜式”結構,引、蓄、提相結合,大、中、小相結合,將本地水和外調水通暢地蓄進坑塘,將處理后符合灌溉水質的坑塘污水通暢地灌溉農田。坑塘經過改造,清淤加深,擴建防滲,修整配套,做到廢棄土地建新塘,小塘并大塘,舊塘擴新塘,村村建立當家塘,保障水能蓄得住。

圖1 基于DEM地形構建流程
仿真平臺中除了地形外還需要其它例如房屋、車輛、裝備等各式各樣的模型,Unity3D 雖然可支持簡單模型的建模,但對于軍事武器裝備等較為復雜的專業模型,通常需要借助第三方建模軟件來創建。
3DS Max是一款功能強大、操作簡便的建模軟件[9-10],使用3DS Max建模的流程圖如圖2所示。

圖2 建模流程圖
首先通過實地測量或從設計圖紙中獲得所需要建立模型的各項形體特征參數,其次利用軟件中的基礎性狀建模或多邊形建模等方法組合建立起對應的三維模型,然后給模型選取添加適當的材質,再制作模型所需的漫反射貼圖、法線貼圖等不同類型的貼圖,最后對創建好的模型進行調整優化,并導出為Unity3D 所支持的.FBX或.OBJ格式的文件。
為了進一步提升仿真環境的真實性,通常還需要在場景中添加雨、雪、霧等自然氣候環境。這些氣候環境效果的實現通常是粒子系統(particle system)來實現,粒子系統是一種應用于計算機圖形學中模擬不規則物體的比較實用的建模方法,在構造和模擬物體的時候,粒子系統可以明顯突出物體的實時性和動態效果,因此,粒子系統經常被用來模擬雨、雪、霧等氣候環境和爆炸、火光、流光等特殊效果。在Unity3D 中可以實現不同的天氣效果,用戶可以根據所需的天氣狀況選擇添加不同種類的特效來模擬真實環境中的氣候環境,極大地提高虛擬場景的逼真程度。
目前,Unity3D 可以通過功能強大的插件來模擬多種天氣環境,常見的插件主要有Weather Maker、Unity Enviro、UniStorm等。其中,Weather Maker 是Unity3D 中功能比較完善的集天氣、地形覆蓋、水和天空等一體的模擬插件,可以便捷地模擬雨、雪、霧、冰雹等各類氣候情況,并且模擬出的氣候環境支持與場景內其他模型的碰撞檢測,使得場景效果更加真實。
仿真環境中的爆炸、火焰效果是在粒子系統的基礎上實現的一種物理模型,再添加上紋理貼圖來實現對應效果;對于煙霧的模擬和渲染則需要采用動態圖像渲染法,通常是采用Billboard 算法將戰場上爆炸場景中的關鍵幀制作成紋理貼圖,再采用線性插值的算法來實現煙霧的動態渲染和模擬[11-12]。
為了便捷地實現用戶界面,Unity3D 內部集成了NGUI 和UGUI 組件,用戶可以直接通過圖形化方式來繪制用戶界面。UGUI 主要將NGUI中的基礎功能組件進行封裝,還通過對UI 組件的分層設置來控制UI 組件的渲染流程和順序,這種方式能有效地解決NGUI中多重錨點之間的控件分布,控制操作復雜的情況;另外,UGUI系統中也內置了許多常用的基礎UI 控件以及布局控件,按照需求通過合理搭配以及動態加載這些基礎控件就可以在Unity3D 中完成復雜的用戶界面設計。
為了提高仿真系統的操控便捷性,可以在系統中引入語音控制。百度語音是百度公司開發的人工智能系列產品,它具有十分強大的語音功能。百度語音不僅能夠實現語音智能搜索,還可以下達語音控制指令,通過語音控制來實現我們想要達到的操作。通過百度語音識別出我們下達的語音控制指令,來取代傳統的通過鍵盤、鼠標等的操控方式,讓系統有更好的交互控制效果。
在Unity3D 中實現語音控制,可以采用接口調用方式對語音信號在線識別。首先識別外部的音頻設備,然后對語音指令進行錄制,再對音頻資源中的有效信息進行截取,最后將音頻文件轉化為文本信息,實現將音頻輸入到文本輸入的轉化,達到語音控制指令的下達。
虛擬現實技術是一種處于高速發展和探索階段的新技術,已經在航空航天、醫療實踐、室內設計、教學培訓等領域嶄露頭角。虛擬現實仿真系統的特性也正在從3I,即沉浸感(immersion)、交互感(interaction)、想象型(imagination)模式向4I,增加智能化(intelligent)的方向逐步進化。目前虛擬現實技術應用的相關產品主要利用虛擬現實頭盔、手套、眼鏡等設備進行交互,計算機對接收到的動作和指令信息進行分析處理后傳給應用程序,再由設備對用戶的視覺、聽覺、觸覺等不同感官進行反饋輸出,由此用戶可以深度體驗虛擬現實技術帶來的真實感。為了支持VR 設備的應用,Unity3D 提供了一種支持手持式和可穿戴設備等VR 設備的應用程序,包含了Unity 開發者使用到的界面功能,為VR設備和Unity 應用程序之間的交互建立了通道。
仿真推演平臺的構建思路是在Unity3D 平臺的基礎上,通過集成一些必要的插件,組建一套仿真平臺開發必備的基礎環境。隨后在基礎環境上實現仿真場景的構建和仿真推演。該仿真平臺的架構如圖3所示。

圖3 仿真平臺系統架構圖
該平臺按照功能模塊總共劃分為六個部分,分別是輔助控制層、顯示層、通信層、業務邏輯層、算法層、數據層,其中數據層與算法層供業務邏輯層調用,業務邏輯層與顯示層均通過通信層完成交互,顯示層和輔助控制層可以調用業務邏輯層。各層具體功能如下。
(1)顯示層。主要負責與仿真相關的場景和UI 界面展示,其中UI 界面是業務邏輯的主要輸入端,可以包含選擇界面、控制策略界面、多種參數設置界面等。除了顯示作用之外,顯示層還負責將用戶的操作以及輸入請求通過Event-System(事件系統)模塊轉發給業務邏輯層來完成后續的業務邏輯處理。
(2)輔助控制層。主要是語音控制和VR 設備輸入控制部分,負責將語音輸入的指令或者VR 設備傳輸的指令信號直接傳給對應的業務邏輯部分,從而增加系統的操控性、便捷性和交互性。
(3)通信層。主要負責系統中消息的傳遞與數據的傳輸,可以將系統中各個模塊進行解耦,模塊之間的信息傳輸基本都通過該層的消息廣播中心和EventSystem 模塊完成,消息廣播中心是通過觀察者模式進行設計實現的,其它各個模塊可以通過在消息廣播中心中訂閱事件來實現對特定事件的監聽。
(4)業務邏輯層。負責具體的業務邏輯,主要包括各個業務模塊,其中有界面管理模塊、資源管理模塊、場景管理模塊、場景交互等,業務邏輯層在完成用戶請求的邏輯功能后將結果反饋給顯示層進行顯示。
(5)算法層。包含系統所涉及到的各種算法模型,主要包括數學模型、運動模型、檢測相關算法以及用于圖形化建模的模塊算法,算法層主要供業務邏輯層進行調用,來完成相應的功能。
(6)數據層。主要包括資源數據、配置數據、推演數據、腳本數據等,這些數據分級分類處理,主要供業務邏輯層調用。
基于Unity3D 的游戲引擎中的技術方案,通過模塊化的思想構建出作戰仿真推演平臺,設計了平臺整體結構的理論方案設計與實現方式,該平臺具有虛擬作戰場景逼真、人機交互友好、可復用性強以及可擴展性高等特點。相比其他的渲染系統,Unity3D 能夠渲染出更好的場景,能夠使開發者更加專注仿真模型的開發;另外輔以智能語音控制和VR 設備的交互體驗,對仿真效果的提升有極大的幫助。