徐立濤,鄧啟亮
(西安電子科技大學(xué)物理與光電工程學(xué)院,陜西西安 710071)
在計(jì)算機(jī)圖形學(xué)中,粒子系統(tǒng)被認(rèn)為是成功的模擬模糊物體的圖形生成算法。1983年,William T.Reeves提出了一套模擬模糊物體的理論,此方法稱為粒子系統(tǒng)。該系統(tǒng)用大量粒子作為基本元素,并將這些基本元素聚集起來,形成不規(guī)則的模糊物體。在粒子系統(tǒng)中,使用許多粒子的集合來表示模糊物體,每個(gè)粒子的屬性均具有一定的隨機(jī)性,但所有粒子的整體具有規(guī)律性,可表現(xiàn)出模糊物體的特征。粒子系統(tǒng)被廣泛運(yùn)用于虛擬現(xiàn)實(shí)、三維仿真、游戲開發(fā)、電影特效、科學(xué)仿真、科學(xué)計(jì)算可視化等領(lǐng)域。
照明彈的燃燒效果屬于模糊物體的范疇。其是一種用于發(fā)光照明的彈藥。照明彈通過點(diǎn)燃照明劑,產(chǎn)生劇烈的燃燒現(xiàn)象,發(fā)出耀眼的火光。本文主要研究了照明彈的基本工作原理,使用粒子系統(tǒng)建立了照明彈的模型,并運(yùn)用面向?qū)ο髨D像渲染引擎 OGRE(Object- oriented Graphics Render Engine)[2-3]實(shí)現(xiàn)照明彈效果的動(dòng)態(tài)仿真。
使用許多微小粒子組成集合體來表示模糊物體的方法,被稱為粒子系統(tǒng)理論。粒子系統(tǒng)是一個(gè)動(dòng)態(tài)的粒子集合體。在粒子系統(tǒng)中,每個(gè)粒子均會(huì)經(jīng)歷產(chǎn)生、發(fā)展和消亡的過程[4]。每個(gè)粒子在產(chǎn)生時(shí),都被賦予了一個(gè)生命周期,當(dāng)一個(gè)粒子達(dá)到其生命周期時(shí),將被視為消亡粒子而刪除。與此同時(shí),新的粒子也在產(chǎn)生,整個(gè)粒子系統(tǒng)在不斷地更新著自身的狀態(tài)[5]。
粒子系統(tǒng)中的粒子,具有宏觀和微觀兩種屬性。宏觀屬性指粒子系統(tǒng)的整體形態(tài)和運(yùn)動(dòng)規(guī)律,是粒子系統(tǒng)作為整體需要遵循的規(guī)則作用。例如粒子受到重力作用而改變運(yùn)動(dòng)軌跡。微觀屬性指粒子個(gè)體的狀態(tài)參數(shù),通常受到一個(gè)隨機(jī)過程的控制。例如某個(gè)粒子在某一時(shí)刻的尺寸、形狀和運(yùn)動(dòng)速度等。
粒子系統(tǒng)仿真物體的具體步驟[6]如下:(1)生成新粒子。(2)為新粒子分配初始屬性。(3)遍歷所有粒子并刪除到達(dá)生命周期的粒子。(4)更新存活粒子的屬性。(5)存活粒子的圖像被渲染到屏幕上。
照明彈是一種用于發(fā)光照明的彈藥[7]。照明彈的彈丸主要包括時(shí)間引信、彈體、拋射藥、照明炬系統(tǒng)、吊傘,且照明炬系統(tǒng)與吊傘相連。照明炬系統(tǒng)內(nèi)部裝有照明劑,照明劑常由金屬可燃物、氧化物和粘合劑等物質(zhì)組成。照明劑燃燒時(shí),能產(chǎn)生幾千度的高溫,并發(fā)射出耀眼的光芒,同時(shí)具有一定的燃燒時(shí)間。
照明彈通常配備于迫擊炮或中小口徑榴彈炮等射角較大的火炮。使用時(shí),火炮將照明彈的彈丸發(fā)射到預(yù)定目標(biāo)上空。彈丸到達(dá)預(yù)定的空域時(shí),時(shí)間引信作用,點(diǎn)燃拋射藥和照明劑。拋射藥的燃燒產(chǎn)生大量氣體,同時(shí)彈丸爆炸照明炬系統(tǒng)和吊傘被拋出,并與彈體分離。吊傘在空氣阻力的作用下打開,搭載著照明炬系統(tǒng)緩慢下落,其速度一般為5~8 m/s。同時(shí)照明炬系統(tǒng)中的照明劑燃燒,發(fā)出耀眼的光芒,照亮周圍環(huán)境,發(fā)光強(qiáng)度可達(dá)40~80萬cd,持續(xù)燃燒時(shí)間通常為25 ~60 s。
利用粒子系統(tǒng)理論模擬照明彈效果,關(guān)鍵在于理解照明彈的運(yùn)動(dòng)與變化過程,建立合適的模型[8]。根據(jù)照明彈的工作原理,可將照明彈發(fā)射后的時(shí)間分為兩個(gè)階段,彈丸爆炸前與彈丸爆炸后。本文從照明彈的形態(tài)變化過程和運(yùn)動(dòng)過程兩個(gè)方面分別進(jìn)行設(shè)計(jì)建模,最終將兩個(gè)方面的模型整合,形成完整的照明彈模型。
根據(jù)理論分析以及實(shí)際觀察的結(jié)果,本文采用兩組不同的粒子系統(tǒng)來模擬照明彈的形態(tài)變化效果。
第一組粒子系統(tǒng)用于模擬爆炸前彈丸的外觀形態(tài)。彈丸從發(fā)射后到爆炸前,外部被彈體包圍,形狀近似為橢球體,其不發(fā)光,且處于高速運(yùn)動(dòng)過程,肉眼不易發(fā)現(xiàn)。采用32×32的粒子位圖圓形作為第一組粒子系統(tǒng)的粒子材質(zhì)貼圖,以模擬彈丸的外觀形態(tài)??刂频谝唤M粒子系統(tǒng)產(chǎn)生粒子的形狀、尺寸和灰度值不變,這便表現(xiàn)出了此階段彈丸外觀基本不變的特征。而照明彈彈丸發(fā)射的初始時(shí)刻,是將第一組粒子系統(tǒng)置于開啟狀態(tài)。
第二組粒子系統(tǒng)用于模擬爆炸后彈丸的外觀形態(tài)。在彈丸爆炸的瞬間,照明炬系統(tǒng)中的照明劑開始燃燒,發(fā)出明亮耀眼的火光。照明劑燃燒時(shí),中心部分為一亮斑,周圍有一圈閃耀的光環(huán)。亮斑閃爍,光環(huán)的大小也隨之變化,且亮斑的閃爍具有一定的隨機(jī)性。本文使用第二組粒子系統(tǒng),仿真照明劑的燃燒效果,并采用一張中央明亮周圍漸變、邊緣呈鋸齒狀的圖片作為第二組粒子系統(tǒng)的粒子材質(zhì)貼圖。使用此粒子系統(tǒng)每秒產(chǎn)生20個(gè)粒子,并設(shè)置每個(gè)粒子的生命周期在0.1~0.3 s中隨機(jī)取值。粒子達(dá)到生命周期時(shí)立即消失,同時(shí)產(chǎn)生新的粒子,從而使粒子系統(tǒng)的整體處于動(dòng)態(tài)平衡。在此系統(tǒng)中,控制每個(gè)粒子的尺寸從初始值迅速地增大,以產(chǎn)生光環(huán)閃耀的視覺效果。同時(shí)令粒子的灰度值隨時(shí)間的推移而減小。粒子的灰度衰減的越快,產(chǎn)生的光環(huán)效果邊緣則越模糊。
動(dòng)態(tài)模擬照明彈的過程中,首先只開啟第一組粒子系統(tǒng),然后在彈丸爆炸的瞬間,關(guān)閉第一組粒子系統(tǒng),并開啟第二組粒子系統(tǒng),以實(shí)現(xiàn)照明彈外觀形態(tài)的轉(zhuǎn)換。
為實(shí)現(xiàn)對(duì)照明彈運(yùn)動(dòng)過程的建模,本文使用OGRE圖像渲染引擎,對(duì)照明彈進(jìn)行動(dòng)態(tài)渲染。將粒子系統(tǒng)與一個(gè)場(chǎng)景節(jié)點(diǎn)(Scene Node)綁定,通過對(duì)該場(chǎng)景節(jié)點(diǎn)的操作,實(shí)現(xiàn)對(duì)粒子系統(tǒng)運(yùn)動(dòng)過程的控制。首先創(chuàng)建幀監(jiān)聽器FrameListener方法,獲取每一幀圖像中粒子的運(yùn)動(dòng)狀態(tài),其中包括粒子的中心位置和運(yùn)動(dòng)速度。然后根據(jù)粒子的運(yùn)動(dòng)狀態(tài),為粒子添加相應(yīng)的力學(xué)效果。具體實(shí)現(xiàn)過程中,照明彈運(yùn)動(dòng)過程建模分為彈丸的上升階段和下落階段兩部分。
可認(rèn)為彈丸在最高點(diǎn)位置爆炸,因此彈丸的上升階段等于彈丸爆炸前階段。照明彈的彈丸被發(fā)射后,初速度方向幾乎豎直向上。然后在重力的作用下,彈丸的速度逐漸降低,直到速度降為0。此過程滿足公式
其中,v(0)為彈丸的初速度,v(t)為照明彈發(fā)射后t秒時(shí)刻彈丸的瞬時(shí)速度,g為重力加速度,t為照明彈發(fā)射后經(jīng)歷的時(shí)間。軟件模擬的過程中,在FrameListener方法里,添加對(duì)粒子狀態(tài)的監(jiān)視與控制。粒子的初始速度方向?yàn)樨Q直向上。在每一幀中獲取粒子的位置,計(jì)算連續(xù)兩幀圖像中粒子移動(dòng)的距離,以用此距離除以兩幀圖像的時(shí)間差,得到粒子的瞬時(shí)速度。當(dāng)此瞬時(shí)速度>0時(shí),設(shè)置粒子獲得了豎直向下的加速度g,g取9.8 m/s2。
彈丸的下落階段等于彈丸爆炸后階段。彈丸在最高點(diǎn)爆炸后,吊傘打開,為照明炬系統(tǒng)提供了豎直向上的空氣阻力,此空氣阻力的大小等于照明炬系統(tǒng)和吊傘的總重力。照明炬系統(tǒng)在豎直方向上受力平衡,以每秒數(shù)米的均速下落,直至照明劑熄滅或落地。在軟件模擬的方法中,通過FrameListener方法,獲取粒子的瞬時(shí)速度。在此瞬時(shí)速度為0的瞬間,設(shè)置粒子的加速度等于0,同時(shí)改變粒子的運(yùn)動(dòng)速度,使得粒子做方向向下的勻速直線運(yùn)動(dòng)。繼續(xù)監(jiān)視粒子的狀態(tài),若粒子降落到了地面位置,或粒子系統(tǒng)的開啟時(shí)間達(dá)到設(shè)置的閾值,則將粒子系統(tǒng)關(guān)閉。
使用OGRE圖像渲染引擎將建立的照明彈模型整合,并加載到場(chǎng)景中,實(shí)現(xiàn)對(duì)照明彈效果的動(dòng)態(tài)渲染[9]。圖1為仿真的照明彈效果圖像,其中圖1(a)為彈丸爆炸前的仿真效果,圖1(b)為彈丸爆炸后的仿真效果。
圖1 仿真的照明彈效果圖像
本文研究了照明彈的基本原理,建立了照明彈的模型,并仿真了照明彈的效果。文中分別從形態(tài)變化過程和運(yùn)動(dòng)過程兩方面,對(duì)照明彈進(jìn)行分析建模,并使用粒子系統(tǒng)模擬照明彈效果,驗(yàn)證其具有動(dòng)態(tài)性,且視覺真實(shí)感較強(qiáng)。
[1]WILLIAM T,REEVES L L.Particle systems- a technique for modeling a class of fuzzy objects[J].Computer Graphics,1983,17(3):359 -365.
[2]Clay Culver.OGRE 網(wǎng)上教程[M/OL].(2008-04-08)[2013 -02 -14]http://www.sudu.cn/info/html/edu.
[3]FELIX K.Ogre 3D 1.7 beginner's guide[M].Birmingham,UK:Packt Publishing Ltd.,2010.
[4]王靜秋,錢志峰.基于粒子系統(tǒng)的焰火模擬研究[J].南京航空航天大學(xué)學(xué)報(bào),2001,33(2):166-170.
[5]詹榮開,羅世彬,賀漢根.用粒子系統(tǒng)理論模擬虛擬場(chǎng)景中的火焰和爆炸過程[J].計(jì)算機(jī)工程與應(yīng)用,2001,37(5).91 -92,128.
[6]顧大曄.基于粒子系統(tǒng)的實(shí)時(shí)模糊場(chǎng)景實(shí)現(xiàn)[J].電子科技,2011,24(8):5 -7.
[7]鄭濤,徐曉剛,歐立銘.基于物理建模的爆炸效果仿真技術(shù)[J].艦船科學(xué)技術(shù),2011,33(7):3 -8.
[8]冷冕冕,孫少斌.基于粒子系統(tǒng)的戰(zhàn)場(chǎng)特效通用模型的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2009,29(8):2124 -2127.
[9]張桂花,王均.粒子系統(tǒng)理論在三維實(shí)時(shí)場(chǎng)景渲染中的應(yīng)用研究[J].大眾科技,2011(11):22-25.