孫曉燕 SUN Xiao-yan
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710032)
(School of Computer Science &Engineering,Xi'an Technological University,Xi'an 710032,China)
導(dǎo)彈的實(shí)際射擊訓(xùn)練,需要耗費(fèi)大量的人力物力和財(cái)力,隨著數(shù)字化仿真模擬技術(shù)的進(jìn)步,一些科研課題可以在虛擬的環(huán)境中進(jìn)行研究,本文基于OpenGL 的導(dǎo)彈飛行仿真的實(shí)現(xiàn),就是利用虛擬現(xiàn)實(shí)技術(shù)進(jìn)行的。從虛擬現(xiàn)實(shí)技術(shù)的特征上來(lái)看,交互性和身臨其境性是其中最為明顯的。從這種意義上說(shuō),人的視覺(jué)感知對(duì)于虛擬效果的好壞非常敏感,所以仿真的關(guān)鍵是真實(shí)性,也就是說(shuō),所虛擬的相關(guān)對(duì)象,在其環(huán)境特征和外觀狀況方面要與實(shí)際的實(shí)物目標(biāo)十分接近,即模擬目標(biāo)的運(yùn)動(dòng)規(guī)律應(yīng)能正確反映實(shí)際運(yùn)動(dòng)情況,這樣才可以達(dá)到虛擬的效果。
為了順利完成上述目標(biāo),在實(shí)際設(shè)計(jì)過(guò)程中,首先要盡可能使用合理的建模工具,運(yùn)用恰當(dāng)?shù)乃惴?,提高?shí)體模型和環(huán)境模型的真實(shí)度;第二,根據(jù)相關(guān)技術(shù)經(jīng)驗(yàn),選擇優(yōu)秀的軟件平臺(tái),在軟件平臺(tái)上,實(shí)現(xiàn)對(duì)模型的材質(zhì)、紋理等方面的轉(zhuǎn)換和處理,提高三維彩色圖像的質(zhì)量。因此,本人選用了3DS MAX 作為建模工具,在運(yùn)行于VC6.0環(huán)境中的OpenGL 中實(shí)現(xiàn)上述要求。
OpenGL 在圖形處理系統(tǒng)領(lǐng)域的應(yīng)用受到專(zhuān)業(yè)技術(shù)人員的認(rèn)可,這套系統(tǒng)是由SGI 公司設(shè)計(jì)并研發(fā)的,該系統(tǒng)作為圖形硬件的軟件界面,其最大的特點(diǎn)在于該系統(tǒng)能夠在不同的硬件平臺(tái)上實(shí)現(xiàn)那些和硬件無(wú)關(guān)的特性。并且這套系統(tǒng)使用靈活方便,適應(yīng)性較強(qiáng),能夠適應(yīng)計(jì)算機(jī)的大部分操作系統(tǒng),通過(guò)該系統(tǒng)可以實(shí)現(xiàn)對(duì)物體的繪制、變換、光照處理等,從而能夠更加真實(shí)地描述三維圖象及動(dòng)畫(huà)。
程序主要分為以下幾個(gè)步驟來(lái)模擬導(dǎo)彈的飛行以及被擊中的場(chǎng)景:①OpenGL 窗口的建立和初始化;②導(dǎo)彈建模和顯示;③天空、海面的顯示及運(yùn)動(dòng);④導(dǎo)彈的運(yùn)動(dòng)及爆炸效果顯示。
2.1 OpenGL 窗口的建立和初始化 首先需要將OpenGL 所需要的庫(kù)文件添加到工程中;再通過(guò)MFC AppWizard 創(chuàng)建一個(gè)MFC 應(yīng)用程序框架,然后在此基礎(chǔ)上通過(guò)添加相應(yīng)的變量和函數(shù),完成OpenGL 窗口的創(chuàng)建和初始化操作。其中關(guān)鍵之處在于設(shè)備描述表的像素格式設(shè)置以及建立繪制描述表和設(shè)備描述表的聯(lián)系,即建立windows 應(yīng)用程序與OpenGL 的接口。
2.2 導(dǎo)彈模型的建立 在實(shí)際模型的建立過(guò)程中,本文使用的是當(dāng)前該領(lǐng)域應(yīng)用相對(duì)成熟的造型軟件3DSMax,通過(guò)這個(gè)造型軟件,建立導(dǎo)彈的三維模型,然后在使用相應(yīng)的轉(zhuǎn)換工具,把導(dǎo)彈的三維模型轉(zhuǎn)換成OpenGL 能夠識(shí)別的頂點(diǎn)坐標(biāo)形式,之后通過(guò)顯示列表的方式建立對(duì)象的三維模型。
本文將3DS 文件轉(zhuǎn)換成OpenGL 文件的具體過(guò)程如圖1所示。
圖1 3DS 文件轉(zhuǎn)換成OpenGL 文件的過(guò)程
2.3 環(huán)境模型的建立 視景仿真中,動(dòng)感的大海、逼真的天空、導(dǎo)彈的爆炸場(chǎng)景等的模擬是本文研究的關(guān)鍵內(nèi)容,主要是因?yàn)檫@些對(duì)象不存在明顯的邊界和法向,用傳統(tǒng)的幾何造型方法難以描述。對(duì)于這些視景的仿真,采用了不同的實(shí)現(xiàn)方法。
2.3.1 海面的產(chǎn)生 海面的產(chǎn)生,我們采取了紋理映射的方法。在OpenGL 圖形處理系統(tǒng)中,專(zhuān)業(yè)技術(shù)人員通過(guò)使用紋理映射技術(shù),能夠把從真實(shí)世界中拍攝到的某種物體的表面細(xì)節(jié),通過(guò)貼圖的方式貼到三維場(chǎng)景中同種物體的表面,這種技術(shù)方法大大提高了圖像中的物體和真實(shí)世界中物體的相似度。仿真模擬海面的產(chǎn)生,能夠?yàn)閷?dǎo)彈的仿真飛行提供逼真的場(chǎng)景,對(duì)于導(dǎo)彈模擬飛行數(shù)據(jù)的采集和分析,有著非常重要的作用。因此,在海面圖像產(chǎn)生過(guò)程中,通過(guò)紋理映射技術(shù)的合理運(yùn)用,可以得到海面起伏不定的效果。
2.3.2 天空的生成 對(duì)天空的處理,在本文的研究中是使用紋理映射的方法結(jié)合Billboarding 技術(shù),Billboard技術(shù)在使用過(guò)程中,其核心原理是把一幅圖像,映射到簡(jiǎn)單的幾何平面,也就是Billboard 上,之后再將其放置到視景體中,并使Billboard 與視線在x-z 平面上的投影垂直。對(duì)于天空的一般處理中,往往沒(méi)有太陽(yáng),一般都是藍(lán)天白云。這里,筆者選擇了一幅比較好的天空?qǐng)D像,不僅有藍(lán)天、白云,還有遠(yuǎn)處若隱若現(xiàn)的山脈,這樣的圖像應(yīng)用到程序中,會(huì)非常逼真。將選定的天空?qǐng)D像作為紋理映射到Billboa-rd上,使該平面與視線在x-z 平面上的投影垂直。
2.3.3 爆炸場(chǎng)景的設(shè)計(jì) 導(dǎo)彈的運(yùn)動(dòng)是直線運(yùn)動(dòng),當(dāng)導(dǎo)彈被擊中時(shí),就會(huì)產(chǎn)生爆炸場(chǎng)景。爆炸場(chǎng)景是由多幅靜態(tài)不同的圖像循環(huán)映射到Billboard 上實(shí)現(xiàn)的。設(shè)置映射時(shí),利用Alpha 融合技術(shù)實(shí)現(xiàn)每幅圖像間的漸變過(guò)程,使爆炸效果比較逼真。
2.4 視景轉(zhuǎn)換 在建立好導(dǎo)彈飛行模型之后,如果想要用戶更清楚的觀察模型效果,還需要進(jìn)行視景轉(zhuǎn)換,具體來(lái)說(shuō),在三維空間中選擇合適的位置,將導(dǎo)彈飛行的模型安放好,之后為觀看者選擇適當(dāng)?shù)囊朁c(diǎn)及觀察方向,以提高實(shí)際觀察效果。視景轉(zhuǎn)換是一項(xiàng)系統(tǒng)性的工作,涉及到的工作程序很多,相關(guān)技術(shù)人員認(rèn)真準(zhǔn)備,做好每一個(gè)環(huán)節(jié)的轉(zhuǎn)換工作,視景轉(zhuǎn)換是對(duì)虛擬效果的進(jìn)一步提升,優(yōu)秀的虛擬環(huán)境,通過(guò)設(shè)計(jì)合理的視景轉(zhuǎn)換可以提高觀察者的實(shí)際感知效果,進(jìn)而為導(dǎo)彈的飛行試驗(yàn)提供良好的虛擬場(chǎng)景,提高相關(guān)實(shí)驗(yàn)的真實(shí)性。
該程序使用建模技術(shù)建立了導(dǎo)彈模型,并在場(chǎng)景中,使用紋理映射技術(shù)使之具有了較強(qiáng)的真實(shí)感,模擬了導(dǎo)彈飛行、爆炸的場(chǎng)景,最終實(shí)現(xiàn)了導(dǎo)彈飛行的仿真。圖2是導(dǎo)彈掠海飛行的場(chǎng)景,圖3是導(dǎo)彈被擊中爆炸的場(chǎng)景。
圖2 飛機(jī)掠海飛行場(chǎng)景
圖3 導(dǎo)彈被擊中爆炸場(chǎng)景
[1]付戰(zhàn)平,等.基于OpenGL 的飛行過(guò)程再現(xiàn)與仿真[J].系統(tǒng)仿真學(xué)報(bào),2002,14(9):1197-1199.
[2]OpenGL Programming Guide Architecture Review Board 參考手冊(cè)[M].機(jī)械工業(yè)出版社,2001.
[3]張王衛(wèi),蘇群星,劉鵬遠(yuǎn).基于OSP 場(chǎng)景圖結(jié)構(gòu)的虛擬裝配碰撞檢測(cè)算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2012(12).
[4]謝漢橋,文立華.基于OpenGL 的反艦導(dǎo)彈彈道視景仿真[J].計(jì)算機(jī)仿真,2010/01.