馬 力,馮 淞
(1.海軍駐揚(yáng)州723所軍事代表室,揚(yáng)州 225001;2.海軍航空軍械修理所,上海 200436)
某型飛機(jī)箔條質(zhì)心干擾訓(xùn)練模擬器的開發(fā)中,需要建立虛擬戰(zhàn)場環(huán)境,其中箔條干擾投放后形成的箔條云特效的實(shí)現(xiàn)是體現(xiàn)仿真逼真度的一個(gè)重要指標(biāo)。箔條云的形成和擴(kuò)散都有較強(qiáng)的隨機(jī)性和離散性的特點(diǎn),屬于模糊不規(guī)則物體。
本文闡述了基于粒子系統(tǒng)的箔條云特效實(shí)現(xiàn)方法,通過在視景仿真軟件Vega中進(jìn)行粒子系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)箔條云的爆炸效果,完全滿足系統(tǒng)的實(shí)時(shí)性和逼真性要求。
粒子系統(tǒng)的基本思想是:采用大量的、具有一定生命力和屬性的微小粒子圖元作為基本元素來描述不規(guī)則的模糊物體,其表現(xiàn)形式與傳統(tǒng)的圖像合成表現(xiàn)形式是不同的,首先一個(gè)物體不是通過一系列表面元素(像多邊形或網(wǎng)格塊)來定義它的邊界,而是通過一系列粒子來確定它的形體;其次,一個(gè)粒子系統(tǒng)不是一個(gè)穩(wěn)定的統(tǒng)一體,隨著時(shí)間的變化,粒子的形式和運(yùn)動(dòng)狀態(tài)將發(fā)生變化,新的粒子將“誕生”,舊的粒子會“死亡”。
在粒子系統(tǒng)中,每個(gè)粒子圖元具有形狀、大小、顏色、透明度、生命期、運(yùn)動(dòng)速度和運(yùn)動(dòng)方向等屬性,這些屬性都是時(shí)間的函數(shù)。每個(gè)粒子都要經(jīng)歷產(chǎn)生、運(yùn)動(dòng)和消亡3個(gè)階段。一個(gè)粒子的屬性主要取決于具體的應(yīng)用。
粒子系統(tǒng)生成單幀圖像的過程如圖1所示。粒子系統(tǒng)是不斷變化的,在生命期的每一刻,都要完成以下4步工作:
(1)粒子源產(chǎn)生新粒子:產(chǎn)生任意數(shù)目的新粒子,其初始屬性由隨機(jī)過程控制。每個(gè)粒子都有一個(gè)生命期,如果某些粒子不應(yīng)刪除,則可賦予它無限長的生命期。
(2)更新粒子屬性:更新現(xiàn)存粒子的屬性。
(3)刪除“死”粒子:檢查粒子的生命期,若為0則將粒子從系統(tǒng)中刪除。
(4)繪制粒子:顯示粒子系統(tǒng)中所有現(xiàn)存粒子。
圖1 粒子系統(tǒng)生成單幀圖像的過程
根據(jù)粒子的屬性,結(jié)合箔條干擾特征,建立基于粒子系統(tǒng)的箔條云模型,可表示為:MC(P,V,σ)=g(FParticle),其中P為箔條干擾位置,V為箔條云運(yùn)動(dòng)速度,σ為箔條干擾雷達(dá)截面積。
Vega特殊效果模擬模塊提供了可擴(kuò)展的粒子系統(tǒng)設(shè)置面板,用戶可以在 LynX圖形界面中方便地定義各種復(fù)雜的粒子系統(tǒng),甚至可以支持動(dòng)態(tài)地更改屬性設(shè)置,從而能夠交互地創(chuàng)造出基于粒子系統(tǒng)的自定義的特殊效果。
(1)粒子生命周期
粒子系統(tǒng)中的粒子不是從產(chǎn)生開始一直存在的,由粒子源產(chǎn)生的粒子都要經(jīng)歷產(chǎn)生和活動(dòng)而消亡,然后再進(jìn)入下一輪的循環(huán)。
Vega自定義粒子系統(tǒng)以秒為單位來設(shè)定粒子的生命周期。箔條云粒子系統(tǒng)中,選取一個(gè)粒子生命周期來描述箔條云從爆炸成型到飄散消失的過程,箔條留空時(shí)間越長,則設(shè)置粒子生命周期時(shí)間越長,系統(tǒng)中設(shè)置為30 s。
(2)粒子個(gè)數(shù)
就單個(gè)粒子而言,實(shí)時(shí)系統(tǒng)對粒子的繪制和動(dòng)態(tài)更新對圖形生成的影響比較小,但可能會給圖像硬件在光柵化階段帶來潛在的較大負(fù)載。所以,粒子數(shù)量設(shè)置時(shí)要盡量避免在同一位置上產(chǎn)生數(shù)量過多的粒子。在滿足仿真逼真度的前提下,將箔條云的粒子個(gè)數(shù)設(shè)置為800。
(3)粒子源
粒子系統(tǒng)中的所有粒子都是由粒子源產(chǎn)生的,所有的粒子都是從這個(gè)平臺發(fā)射出來的。粒子源有2個(gè)重要的性質(zhì),即粒子源形狀和粒子源大小,它們一起確定了粒子發(fā)射平臺的外形特征,從而決定了粒子產(chǎn)生的初始狀態(tài)。將箔條云形成的初始形狀近似看作球體,成形后的雷達(dá)有效反射面積(RCS)不小于σ,所以在箔條云粒子系統(tǒng)中將粒子源形狀設(shè)置為球形,半徑近似為
(4)重力矢量
箔條云垂直方向的運(yùn)動(dòng)速度由箔條重力決定,影響箔條重力的主要因素是所選用的材料,一般鍍鋁玻璃絲的下降速度為0.3 m/s。重力矢量是粒子系統(tǒng)中的常量,它定義了1個(gè)矢量用于描述重力角速度對粒子系統(tǒng)的影響,將箔條云粒子系統(tǒng)的重力矢量設(shè)定為(0,0,-0.3)。
(5)風(fēng)速矢量
箔條云水平運(yùn)動(dòng)的速度主要由風(fēng)速?zèng)Q定,在粒子系統(tǒng)循環(huán)過程中風(fēng)速可以隨著時(shí)間變換,通過LynX中設(shè)置(如圖2),粒子在生命周期的前0.6個(gè)周期中速度為(4,-2,0),后0.4個(gè)周期中速度為(2,-1,0),可以依據(jù)不同環(huán)境對風(fēng)速進(jìn)行設(shè)置。
圖2 風(fēng)速時(shí)間-屬性設(shè)置面板
(6)隨機(jī)速度
隨機(jī)速度用于給粒子系統(tǒng)中的粒子運(yùn)動(dòng)添加隨機(jī)效果,使得粒子空間擴(kuò)散的運(yùn)動(dòng)方向隨機(jī),同時(shí),速度矢量也是指定范圍內(nèi)的任意值。箔條云粒子系統(tǒng)中設(shè)隨機(jī)速度為8,則粒子運(yùn)動(dòng)速度可能是0~8之間的任意速度,增強(qiáng)系統(tǒng)的真實(shí)感。
箔條質(zhì)心干擾訓(xùn)練模擬器中采用控制臺程序建立虛擬仿真應(yīng)用程序。如圖3所示,在程序中建立Vega應(yīng)用的3個(gè)必需的步驟為:
(1)初始化:這一步初始化Vega系統(tǒng)并創(chuàng)建共享內(nèi)存及初始化參數(shù);
(2)定義:在Lynx中設(shè)置仿真程序的基本內(nèi)容,并生成相應(yīng)的應(yīng)用程序定義文件.adf。
(3)配置:通過調(diào)用配置函數(shù)來完成配置。配置完Vega系統(tǒng)后,就開始了Vega應(yīng)用的主循環(huán),主循環(huán)的作用是對三維視景進(jìn)行渲染驅(qū)動(dòng)。它主要分2步:
(a)對于給定的幀速進(jìn)行幀同步。
(b)對當(dāng)前的顯示幀進(jìn)行必要的處理。
圖3 程序運(yùn)行流程圖
以下顯示了1個(gè)最小的Vega應(yīng)用程序:
通過操作桿上的按鍵觸發(fā)消息,在Vega主循環(huán)中調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)中通過以下語句啟動(dòng)LynX中設(shè)定好的箔條云特效,實(shí)現(xiàn)箔條云效果仿真,如圖4所示。
圖4 箔條云效果圖
在研制某型飛機(jī)箔條質(zhì)心干擾訓(xùn)練模擬器中,采用基于粒子系統(tǒng)的箔條云效果建模方法,很好地實(shí)現(xiàn)了箔條云的模擬顯示。該模擬訓(xùn)練器已研制完成并應(yīng)用于教學(xué)、訓(xùn)練中,取得了良好效果。
[1]Reeves W T.Particle systems-a technique for modeling a class of fuzzy object[J].ACM Computer Graphics,1983,17(3):359-376.
[2]候印鳴,李德成,孔憲正,等.綜合電子戰(zhàn)[M].北京:國防工業(yè)出版社,2000.
[3]彭群生,鮑虎軍,金小剛.計(jì)算機(jī)真實(shí)感圖形的算法基礎(chǔ)[M].北京:科學(xué)出版社,1999.