孫曉燕 SUN Xiao-yan
(西安工業大學計算機科學與工程學院,西安 710032)
(School of Computer Science &Engineering,Xi'an Technological University,Xi'an 710032,China)
導彈的實際射擊訓練,需要耗費大量的人力物力和財力,隨著數字化仿真模擬技術的進步,一些科研課題可以在虛擬的環境中進行研究,本文基于OpenGL 的導彈飛行仿真的實現,就是利用虛擬現實技術進行的。從虛擬現實技術的特征上來看,交互性和身臨其境性是其中最為明顯的。從這種意義上說,人的視覺感知對于虛擬效果的好壞非常敏感,所以仿真的關鍵是真實性,也就是說,所虛擬的相關對象,在其環境特征和外觀狀況方面要與實際的實物目標十分接近,即模擬目標的運動規律應能正確反映實際運動情況,這樣才可以達到虛擬的效果。
為了順利完成上述目標,在實際設計過程中,首先要盡可能使用合理的建模工具,運用恰當的算法,提高實體模型和環境模型的真實度;第二,根據相關技術經驗,選擇優秀的軟件平臺,在軟件平臺上,實現對模型的材質、紋理等方面的轉換和處理,提高三維彩色圖像的質量。因此,本人選用了3DS MAX 作為建模工具,在運行于VC6.0環境中的OpenGL 中實現上述要求。
OpenGL 在圖形處理系統領域的應用受到專業技術人員的認可,這套系統是由SGI 公司設計并研發的,該系統作為圖形硬件的軟件界面,其最大的特點在于該系統能夠在不同的硬件平臺上實現那些和硬件無關的特性。并且這套系統使用靈活方便,適應性較強,能夠適應計算機的大部分操作系統,通過該系統可以實現對物體的繪制、變換、光照處理等,從而能夠更加真實地描述三維圖象及動畫。
程序主要分為以下幾個步驟來模擬導彈的飛行以及被擊中的場景:①OpenGL 窗口的建立和初始化;②導彈建模和顯示;③天空、海面的顯示及運動;④導彈的運動及爆炸效果顯示。
2.1 OpenGL 窗口的建立和初始化 首先需要將OpenGL 所需要的庫文件添加到工程中;再通過MFC AppWizard 創建一個MFC 應用程序框架,然后在此基礎上通過添加相應的變量和函數,完成OpenGL 窗口的創建和初始化操作。其中關鍵之處在于設備描述表的像素格式設置以及建立繪制描述表和設備描述表的聯系,即建立windows 應用程序與OpenGL 的接口。
2.2 導彈模型的建立 在實際模型的建立過程中,本文使用的是當前該領域應用相對成熟的造型軟件3DSMax,通過這個造型軟件,建立導彈的三維模型,然后在使用相應的轉換工具,把導彈的三維模型轉換成OpenGL 能夠識別的頂點坐標形式,之后通過顯示列表的方式建立對象的三維模型。
本文將3DS 文件轉換成OpenGL 文件的具體過程如圖1所示。

圖1 3DS 文件轉換成OpenGL 文件的過程
2.3 環境模型的建立 視景仿真中,動感的大海、逼真的天空、導彈的爆炸場景等的模擬是本文研究的關鍵內容,主要是因為這些對象不存在明顯的邊界和法向,用傳統的幾何造型方法難以描述。對于這些視景的仿真,采用了不同的實現方法。
2.3.1 海面的產生 海面的產生,我們采取了紋理映射的方法。在OpenGL 圖形處理系統中,專業技術人員通過使用紋理映射技術,能夠把從真實世界中拍攝到的某種物體的表面細節,通過貼圖的方式貼到三維場景中同種物體的表面,這種技術方法大大提高了圖像中的物體和真實世界中物體的相似度。仿真模擬海面的產生,能夠為導彈的仿真飛行提供逼真的場景,對于導彈模擬飛行數據的采集和分析,有著非常重要的作用。因此,在海面圖像產生過程中,通過紋理映射技術的合理運用,可以得到海面起伏不定的效果。
2.3.2 天空的生成 對天空的處理,在本文的研究中是使用紋理映射的方法結合Billboarding 技術,Billboard技術在使用過程中,其核心原理是把一幅圖像,映射到簡單的幾何平面,也就是Billboard 上,之后再將其放置到視景體中,并使Billboard 與視線在x-z 平面上的投影垂直。對于天空的一般處理中,往往沒有太陽,一般都是藍天白云。這里,筆者選擇了一幅比較好的天空圖像,不僅有藍天、白云,還有遠處若隱若現的山脈,這樣的圖像應用到程序中,會非常逼真。將選定的天空圖像作為紋理映射到Billboa-rd上,使該平面與視線在x-z 平面上的投影垂直。
2.3.3 爆炸場景的設計 導彈的運動是直線運動,當導彈被擊中時,就會產生爆炸場景。爆炸場景是由多幅靜態不同的圖像循環映射到Billboard 上實現的。設置映射時,利用Alpha 融合技術實現每幅圖像間的漸變過程,使爆炸效果比較逼真。
2.4 視景轉換 在建立好導彈飛行模型之后,如果想要用戶更清楚的觀察模型效果,還需要進行視景轉換,具體來說,在三維空間中選擇合適的位置,將導彈飛行的模型安放好,之后為觀看者選擇適當的視點及觀察方向,以提高實際觀察效果。視景轉換是一項系統性的工作,涉及到的工作程序很多,相關技術人員認真準備,做好每一個環節的轉換工作,視景轉換是對虛擬效果的進一步提升,優秀的虛擬環境,通過設計合理的視景轉換可以提高觀察者的實際感知效果,進而為導彈的飛行試驗提供良好的虛擬場景,提高相關實驗的真實性。
該程序使用建模技術建立了導彈模型,并在場景中,使用紋理映射技術使之具有了較強的真實感,模擬了導彈飛行、爆炸的場景,最終實現了導彈飛行的仿真。圖2是導彈掠海飛行的場景,圖3是導彈被擊中爆炸的場景。

圖2 飛機掠海飛行場景

圖3 導彈被擊中爆炸場景
[1]付戰平,等.基于OpenGL 的飛行過程再現與仿真[J].系統仿真學報,2002,14(9):1197-1199.
[2]OpenGL Programming Guide Architecture Review Board 參考手冊[M].機械工業出版社,2001.
[3]張王衛,蘇群星,劉鵬遠.基于OSP 場景圖結構的虛擬裝配碰撞檢測算法的研究與實現[J].計算機測量與控制,2012(12).
[4]謝漢橋,文立華.基于OpenGL 的反艦導彈彈道視景仿真[J].計算機仿真,2010/01.