??? 摘 要:虛擬某型導彈完整發射過程,在通用的計算機平臺上,對開發導彈發射環境視景仿真系統進行了研究。系統設計包括場景的生成和功能效果的實現。著重介紹了系統的組成及在VC++6.0平臺上利用OpenGL和DirectSound實現子模塊的關鍵技術,提出了幾項優化措施解決圖像真實感與實時性的問題,最后討論了該視景仿真系統的現實意義。
??? 關鍵詞:虛擬訓練;視景仿真;導彈;OpenGL;建模
?
??? 導彈武器是打擊敵縱深目標的重要武器系統,是現代戰爭不可缺少的武器裝備。而在真實裝備上進行操作訓練,耗資太大,受到場地和氣候的影響,而且有些特殊情況(如災難后果、緊急自毀等)難以實現。視景仿真[1]是仿真動畫的高級階段,也是虛擬現實技術的最重要表現形式,它產生身臨其境的交互式仿真環境,實現用戶與虛擬環境直接進行自然交互。將視景仿真技術應用于導彈武器裝備訓練,開發虛擬訓練[2]和演示系統,能夠對作戰裝備的訓練操作給出良好的實時顯示,給人以強烈的視覺沖擊,同時虛擬操作具有可重復操作、經濟、高效、安全等優點,便于操作號手認識導彈、快速掌握各個設備機構的名稱與作用、熟悉操作方法和操作規程,使武器裝備的訓練既不需要消耗大量的人力、物力、財力資源,又能克服實裝訓練受時間、場地、天氣因素制約的不足。導彈武器發射環境視景仿真系統,對于強化操作號手素質、提高部隊戰斗力具有十分明顯的作用。
1 仿真系統的組成
??? 導彈發射環境是指導彈發射過程及其背景,根據不同的導彈武器型號發射方式不同。本文設計視景仿真系統模擬導彈部隊在接受上級訓練任務和發射命令后,某型陸基車載機動垂直發射導彈從發射車輛占領發射陣地、地面設備展開到導彈按預定程序完成起豎發射全過程。用戶通過計算機鼠標、鍵盤操作,顯示器實時顯示輸出發射進程,音響設備輸出聲音效果。根據導彈發射的實際,該系統需構建發射場地環境、導彈武器系統和導彈模型、車輛模型運動特征、導彈起豎和發射效果、聲音輸出等,具有隨發射車行駛自動漫游和多視點觀察功能以及良好的實時交互效果。因此,需要從場景生成和功能效果兩個方面進行技術實現。其系統結構框圖如圖1所示。
??? 場景生成是指采用虛擬現實技術產生模擬的背景環境,其中天空和地形是必要的背景元素,模型控制包括武器裝備實體模型的建立、導入、轉換和顯示等;在功能效果的實現方面,三維動畫是指在虛擬場景下車輛的行進與停止、地面設備的展開、導彈的起豎發射以及尾罩的側推等。視點變換實現從多視點、多角度對整個訓練過程進行觀察,特殊效果主要有爆炸、火焰、煙霧等效果的模擬,音響技術是場景中各種聲音的再現技術,人機交互技術是用鼠標和鍵盤控制操作仿真軟件,實現播放和停止、拾取和反饋。
2 實現子模塊功能的關鍵技術[3]
??? 在Windows平臺上,該視景系統基于Visual C++ 6.0和OpenGL[4-5],并結合3DS MAX建模軟件、DirectSound編程設計綜合進行。其中,Visual C++6.0作為功能強大的軟件開發工具,MFC為系統開發提供邏輯結構;作為應用程序編程接口,OpenGL提供函數庫,很容易實現模型控制、視點變換、著色、光照、紋理映射、交互操作和動畫等;3DS MAX建模軟件易用性強,渲染方便,尤其表現為建立模型技術能力強(主要包括:細分曲面技術、柔性選擇、曲面工具和NURBS技術等) ;DirectSound是DirectX中用來控制聲音的裝置以及各音效處理的組件,速度快、可控性強,調用DirectX聲音處理函數,可以在設計視景系統時產生實時聲音效果。
2.1 場景生成
??? 車載機動發射導彈其發射環境是戶外露天環境,天空和地形是導彈武器發射仿真系統的必要背景元素,其模型構建是調用OpenGL函數庫建模;對于導彈及發射車輛等實體,用3DS MAX建立其基本模型、OpenGL加載實體模型的3DS文件,建模效率高,并且能夠實現人機交互。
2.1.1 天空背景
??? 用OpenGL生成天空背景,通常有3種方法:(1)用一種接近天空的淡藍色清除背景;(2)繪制一個立方體并對其進行紋理貼圖的“天空盒”(SkyBox)方法;(3)半球形天空模型。對于戶外天空背景,用藍色清除背景的簡易天空模型和“天空盒”模型簡單而顯得真實感不強。地球是球形的,半球形天空模型效果符合真實世界的天空,能夠仿真出符合真實世界的天空效果。因此本文采用半球形天空模型。利用數學中的球面方程:
???
??? 式中,K為球面上任意一點,x﹑y、z為該點坐標,r為球的半徑。化為參數方程F(r,φ,θ):
???
??? 由式(2)求得球面上各個點的坐標后,利用OpenGL技術中的三角形帶(GL_TRIANGLE_STRIP)繪制天空框架。再應用紋理映射技術,映射出具有真實效果的3D天空云圖。
2.1.2 地形背景
??? 完成地形的生成和不同的地貌特征(如山、平地、公路、場坪等)的生成。地形模型的繪制主要有兩種方式:一是根據地形圖形數據的精確描述,來進行真實地形的仿真;二是模擬自然場景中的地形。模擬地形既能滿足本文設計的需要,同時應用分形理論中點位移方法,用盡量少的數據來實現真實感虛擬地形,既經濟又實用。因此該視景系統采用后者,并選用了D-S算法。該算法計算簡單、運算速度快,可以不斷遞歸生成任意分辨率的細化網格,同時也可以保留已經存在的地形測量數據。在地形模型基礎上,映射2D紋理圖形,用以提升地形的真實性,獲得發射環境所需的山、平地、公路、場坪等效果。廣告牌技術(Billboard) 實現對樹木模擬的快速高效。
2.1.3 模型控制
??? 導彈武器系統、導彈是該視景仿真系統必備的基本實體模型。用3DS MAX對其建模后生成的模型導入OpenGL程序再對其進行控制是一種比較理想的方法。3DS文件是由許多塊(chunk)構成(大塊中嵌套子塊),一個塊由塊信息和塊數據組成。而塊信息又由塊的ID和塊的長度組成。完整讀取實體模型3DS文件,就要讀入這些塊中包含的模型頂點信息、三角面信息、紋理信息和三角面的材質信息等。在MFC工程中建立虛擬模型類,采用遞歸方式用OpenGL命令調用3DS文件嵌套的塊結構,而返回上一級(子塊讀完,返回父塊)的條件是當前已經讀入的塊字節數等于塊長度,從父塊轉向讀入其子塊則可用switch( )語句實現。
2.2 功能效果的實現
??? 功能效果的實現主要完成靜態場景生成,如系統的漫游、不同視角觀察、導彈發射車的行駛、導彈起豎和起飛、尾罩側推以及尾焰的產生等。
??? (1)三維動畫
??? 在系統場景中,三維動畫主要包括發射車輛沿公路平面行進與停止、地面設備的展開、導彈沿定點起豎到垂直狀態和以給定初始速度彈射到一定高度尾罩側推導彈點火。先調用glutInitDisplayMode(…|GLUT_DOUBLE)函數,啟用雙緩存,分配兩個顏色緩沖區,前臺緩沖區進行圖形顯示,后臺緩沖區執行繪制命令。場景的繪制命令首先被后臺調用,當完整的畫面在后臺視頻中畫出以后,執行SwapBuffers( )函數,成為可見視頻緩存。通過設定OpenGL中的平移命令glTranslate( )和旋轉命令glRotate( )命令參數來獲得動畫效果。這樣通過矩陣變換,完成后臺繪制,前臺顯示,兩個緩存區不斷循環往復,最后得到連續的畫面。
??? (2)視點變換
??? 在導彈發射過程中,單一的視點并不能滿足觀察者的要求。視點設置有兩方面的含義:一是隨著車輛行駛自動漫游,觀察占領陣地過程;二是從不同的角度觀察地面設備展開、導彈起豎彈射。首先,調用OpenGL函數gluViewport( )進行視口設定,確定視口的位置和大小;然后用gluPerspective( )函數來定義模型坐標系中可視錐體的大小和遠近。gluPerspective( )函數具有裁剪功能,在視區錐體里面的物體被投影,而不在這個視區錐體里面的都被其視區的6個面裁剪掉。然后在取景變換中采用gluLookAt( )函數設置視點變換。起豎發射時系統設計了2個相對視點,通過鍵盤切換,分別用以觀察導彈起豎發射時的側視圖(發射車右側)和尾視圖(發射車后面)。
??? (3)音響仿真
??? 一個完整的仿真系統,不僅要有圖像,還要有聲音,這樣才能產生視聽效果,達到身臨其境的感覺。音響仿真提供聽覺信息,利用計算機多媒體技術,仿真生成導彈在運輸、起豎及發射時的逼真音效,這些音效包括發射車輛聲音信息(如發動機的轟鳴聲、喇叭聲)、導彈起豎的聲音、發電機的聲音及點火發射時的音效等。音響仿真過程包括數字聲音的獲取、質量處理和效果回放。通過現場錄音,得到導彈武器發射過程中各種情況下的聲音,再經過采樣和濾波處理后,形成逼真地體現系統聲音效果的wave文件。調用DirectSound提供的強大聲音處理API函數,在應用程序中加載聲音文件,并在程序運行的不同時期將聲音釋放。
??? (4)交互技術
??? 本文所設計的導彈武器發射環境視景仿真系統中交互技術包括鍵盤交互和鼠標交互。鍵盤交互是指利用MFC程序框架提供的消息處理函數接收鍵盤動作、修改控制變量進行啟動、復位、暫停、繼續、終止等控制,在所定義TimeFunction( )函數中,設置鍵盤變量實現動畫控制。鼠標交互包括拾取(Pick)和反饋(FeedBack)兩個過程,鼠標左鍵單擊屏幕上武器系統某些重要功能儀器,屏幕上文字顯示該儀器的名稱、作用,以及操作方式。交互技術為軟件操作者提供了一個優良的平臺,更加直觀地顯示了導彈武器發射細節,完善交互程序代碼,也為下一步開發導彈武器虛擬訓練系統提供了借鑒。
??? (5)特殊效果
??? 特殊效果包括導彈發射時產生煙霧和尾焰效果。煙霧效果的模擬由一組圖片經透明處理后再與背景進行融合,通過控制圖片的位置和融合參數,可實現煙霧的漂移和淡化效果。尾焰效果的模擬則是采用粒子系統,通過產生具有獨立的生命周期和屬性同時集合內部具有相同或相似行為規律的基本粒子實現的。用若干形狀簡單且賦予了生命的微小粒子作為基本元素,而把物體定義為眾多不規則、隨機分布的粒子,隨著時間的推移,由于每個粒子具有獨立的生命周期,通過粒子參數進行隨機過程的控制,舊的粒子不斷消失,新的粒子不斷出現,并且通過賦予粒子紋理來達到模擬尾焰的效果。用粒子系統實現的尾焰逼真度高。
3 優化措施
??? 整個視景仿真系統搭建起來后,應用OpenGL光照、材質、紋理映射以及特殊效果技術,生成逼真形象的導彈發射環境。但整個系統需要處理的數據多,運算量大,要確保軟件在普通PC機上流暢運行,真正達到能夠跨平臺使用,采取優化措施解決圖像真實感與實時性的問題是很有必要的。具體優化措施如下:
??? (1)啟用雙緩存,前臺管理圖形顯示,后臺執行繪制命令。
??? (2)開啟OpenGL消隱功能,不繪制背面和被遮擋的部分。
??? (3)調用顯示列表依次執行列表中所列的函數語句。顯示列表是將一些OpenGL的復合操作預處理后存儲在內存中,程序執行過程中直接調用內存中做過預處理的該復合操作,從而優化程序性能。
??? (4)采用層次細節(LOD)技術后,遠處的場景相對模糊,近處的清晰自然,符合現實情況,同時也減少了計算量,提高了渲染速度。
4? 仿真結果
??? 在3DS MAX中建立基本實體模型,在VC++和OpenGL開發環境中實現事件流程的仿真控制,開發周期短,效率高,并可以取得較好的仿真效果。根據以上方法生成的虛擬導彈發射環境視景系統,實現在虛擬環境下導彈以車載方式運送到發射陣地、導彈起豎彈射、尾罩側推和點火過程仿真,場景真實,符合該導彈發射的實際。同時,效果流暢,人機交互自然,再配以音響產生實時音效,有一種身臨其境的感覺,更增加了直觀效果。導彈武器發射環境視景仿真系統使得導彈實裝操作、訓練和觀摩簡單易行,實施方便。
??? 本文在計算機軟硬件平臺上,應用虛擬仿真技術,構建了導彈發射環境視景仿真系統。虛擬視景系統具有高效性、可控性、無破壞性、使用靈活性、系統運轉費用低等特點,能夠突破傳統訓練方式的局限,既對號手進行導彈操作模擬訓練,取代實彈訓練中的部分科目和內容,又改變了傳統的人教人、師帶徒的落后教學方式,提高了訓練質量,同時,對下一步導彈虛擬訓練系統的開發具有很好的借鑒意義。虛擬導彈訓練系統的開發應用為導彈部隊提高和掌握導彈武器系統操作、迅速形成戰斗力提供了新的方法。
參考文獻
[1] 吳家鑄,劉華峰,程志全,等. 視景仿真技術用度應用. 西安:西安電子科技大學, 2001.
[2]?劉玉海,李瑞,張錫恩. 導彈虛擬操作訓練系統的設計與實現. 飛航導彈,2002, (8).
[3]?和平鴿工作室. OpenGL高級編程與可視化開發系統開發篇(第2版). 北京:中國水利水電出版社. 2007.
[4]?吳賓,畢麗蘊. OpenGL編程實例與技巧. 北京:人民郵電出版社,1999.
[5]?WrightR S,Lipchak J B. OpenGL超級寶典(第2版).徐波,譯. 北京:人民郵電出版社,2005.