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