徐才云 喬有金 孔俊
摘要:該文總結(jié)了基于粒子系統(tǒng)的戰(zhàn)場(chǎng)特效仿真方法,通過(guò)對(duì)粒子系統(tǒng)建模過(guò)程的分析,抽取戰(zhàn)場(chǎng)特效的共同特性,設(shè)計(jì)了一個(gè)由粒子發(fā)射器、粒子、屬性修改器和渲染器組成的通用粒子系統(tǒng)模型。并通過(guò)該模型對(duì)虛擬戰(zhàn)場(chǎng)的常見(jiàn)特殊效果進(jìn)行仿真。
關(guān)鍵詞:粒子系統(tǒng);虛擬戰(zhàn)場(chǎng);特效;仿真
中圖分類(lèi)號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)05-1119-03
The Designation for Virtual Battlefield Special Effect Based on General Particle System Model
XU Cai-yun, QIAO You-jin, KONG Jun
(Armored Force Institute of PLA, Bengbu 233050, China)
Abstract: Simulation methods of virtual battlefield special effect base on general particle system model are concluded in this article. Through analyzing process of particle system modeling and extracting common characters of particle system, an particle system model composed of particle emitter, particle, attribute modifier and renderer. Some special effects of virtual battlefield are simulated through this model.
Key words: particle system; virtual battlefield; special effect; simulation
粒子系統(tǒng)用一套完全不同于以往造型、繪制系統(tǒng)的方法來(lái)構(gòu)造和繪制場(chǎng)景,能夠充分體現(xiàn)不規(guī)則物體的動(dòng)態(tài)性、隨機(jī)性和離散性,被公認(rèn)為是模擬不規(guī)則物體最為成功的一種圖形生成算法。煙霧、爆炸、火焰、閃光等戰(zhàn)場(chǎng)特效,都可以很方便的粒子系統(tǒng)來(lái)模擬。然而,如果對(duì)每一種戰(zhàn)場(chǎng)特效都使用粒子系統(tǒng)單獨(dú)建模實(shí)現(xiàn),會(huì)造成大量的人力物力和資源的浪費(fèi)。為此,該文設(shè)計(jì)了一種基于虛擬戰(zhàn)場(chǎng)特效的通用粒子系統(tǒng)模型,對(duì)虛擬戰(zhàn)場(chǎng)環(huán)境中的多種戰(zhàn)場(chǎng)特效,只需要簡(jiǎn)單地修改和設(shè)置相關(guān)的參數(shù),就能夠?qū)崿F(xiàn)對(duì)多種特效的仿真。
1 粒子系統(tǒng)相關(guān)定義
用狀態(tài)空間法對(duì)粒子、粒子映射和粒子系統(tǒng)描述如下[1]:
1)粒子:一個(gè)實(shí)數(shù)域內(nèi)具有n個(gè)屬性的向量。用符號(hào)表示為:
[Pn={A1,A2...Ai...An|n>2,n∈I}]
其中[Pn](Particles)表示粒子,[A1,A2...Ai...An](Attributes)表示粒子的n個(gè)屬性,如:粒子的大小、形狀、位置、顏色、透明度、速度、加速度、生命周期等。
2)粒子映射:鑒于粒子的索引存儲(chǔ),每個(gè)粒子有且只有一個(gè)索引,需要把粒子逆映射到一個(gè)正整數(shù)集里,即從[It]到[Pn]的映射,用符號(hào)可以表示為:
[Q(t)={Pt:It→Pn|It?M,n>2,n∈I,t∈R},ω(i)=Pn ]
其中[ω(i)]為索引i所對(duì)應(yīng)的粒子的屬性和狀態(tài),M為索引集,[Pt]為t時(shí)刻所有粒子的映射集合,[Q(t)]為粒子映射。
3)粒子系統(tǒng):一個(gè)粒子系統(tǒng)就是大量粒子在生命周期里不同時(shí)刻的表現(xiàn)的綜合,可以由一個(gè)粒子映射集的有限集合來(lái)表示。轉(zhuǎn)化為符號(hào)語(yǔ)言就是:
[S(t)={Q(t)|t∈{t0,t1,t2 ...ti...tm}} ]
其中[S(t)]為粒子系統(tǒng)在[t0,t1,t2 ...ti...tm]時(shí)刻的狀態(tài)集,表現(xiàn)一個(gè)粒子系統(tǒng)在生命周期里的動(dòng)態(tài)變化,[S(t0)]則為粒子系統(tǒng)的初始狀態(tài)。
2 粒子系統(tǒng)建模過(guò)程
粒子系統(tǒng)始終處于動(dòng)態(tài)的變化之中,即不斷有新的粒子產(chǎn)生和舊的粒子消亡。在某一給定幀圖像,產(chǎn)生的粒子數(shù)量可以通過(guò)方程來(lái)確定,該方程包括一幀上生成粒子的平均數(shù)量和方差,或者是屏幕每單位區(qū)域上粒子的數(shù)量和方差,而粒子消亡是由于生命值耗盡或者其它特殊情況[2]。粒子系統(tǒng)建模過(guò)程如圖1所示:
圖1 粒子系統(tǒng)建模過(guò)程
粒子系統(tǒng)在生命周期中,先后主要經(jīng)歷四個(gè)階段,分別為:產(chǎn)生粒子、更新粒子、刪除死亡粒子和繪制粒子[3]。粒子的產(chǎn)生是在某一特定的空間范圍內(nèi),按照既定規(guī)律產(chǎn)生一定數(shù)量和初始屬性的粒子。粒子的更新就是粒子屬性和狀態(tài)變化的實(shí)現(xiàn)。它是模擬不規(guī)則物體物理特性的關(guān)鍵,物理的形態(tài)變化和運(yùn)動(dòng)都是通過(guò)粒子的更新來(lái)表現(xiàn)的。刪除死亡粒子是指將生命值為0或者超出觀察距離的粒子刪除。粒子的產(chǎn)生、更新和死亡形成了一幅動(dòng)態(tài)的畫(huà)面,粒子的繪制就是把這幅畫(huà)面在顯示設(shè)備上表示出來(lái)。
3 通用粒子系統(tǒng)模型設(shè)計(jì)
以往人們對(duì)運(yùn)用粒子系統(tǒng)模擬特殊效果的研究大致可以分為兩種方法,即特例法和屬性參數(shù)法。特例法就是對(duì)某一種特殊效果進(jìn)行單獨(dú)建模、仿真,如基于粒子系統(tǒng)的火焰模擬、基于粒子系統(tǒng)的爆炸模擬等。這種方法重用性和開(kāi)放性差,會(huì)造成大量的人力和物力的浪費(fèi)。屬性參數(shù)法就是通過(guò)設(shè)置和改變屬性參數(shù)來(lái)控制粒子系統(tǒng)的外形和狀態(tài),從而模擬出不同類(lèi)型的特殊效果。這種方法的變化不夠靈活,對(duì)不規(guī)則模糊物體的隨機(jī)性模擬的真實(shí)感不夠強(qiáng)。
根據(jù)實(shí)際需要,該文在對(duì)經(jīng)典粒子系統(tǒng)理論歸納總結(jié)的基礎(chǔ)上,抽取戰(zhàn)場(chǎng)特效的共同特性,建立戰(zhàn)場(chǎng)特效的通用粒子系統(tǒng)模型,用于實(shí)現(xiàn)通用的、開(kāi)放的、可擴(kuò)充的、可交互的粒子系統(tǒng),完成對(duì)多種戰(zhàn)場(chǎng)特效仿真。
3.1 通用粒子系統(tǒng)框架設(shè)計(jì)
虛擬戰(zhàn)場(chǎng)特殊效果的種類(lèi)很多,表現(xiàn)各異,為每一種特效都進(jìn)行編程實(shí)現(xiàn)需要大量的代碼。為了簡(jiǎn)化模型的實(shí)現(xiàn)和增加通用性,該文按照粒子系統(tǒng)戰(zhàn)場(chǎng)特效仿真的一般過(guò)程,通過(guò)對(duì)各種戰(zhàn)場(chǎng)特殊效果的具體分析,抽取不同特效的共同特性,根據(jù)其功能將通用粒子系統(tǒng)劃分成五個(gè)基本模塊,如圖2所示。其中粒子系統(tǒng)類(lèi)模塊是最主要的控制模塊,它提供對(duì)所有特效的共性的控制,而各種特效的特性根據(jù)其它模塊來(lái)實(shí)施控制。粒子發(fā)射器控制特效的外形,屬性修改器控制特效的隨時(shí)間的運(yùn)動(dòng)變化,粒子渲染器控制特效的最終顯示效果。
圖2 粒子系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)首先設(shè)計(jì)好了多種粒子發(fā)射器,如:點(diǎn)粒子發(fā)射器、圓形粒子發(fā)射器、方形粒子發(fā)射器、柱形粒子發(fā)射器等。當(dāng)仿真特效需要的時(shí)候直接使用相應(yīng)的發(fā)射器即可,如果某一中新的特效仿真確實(shí)需要用到一種新的發(fā)射器時(shí),開(kāi)發(fā)者可以根據(jù)需求設(shè)計(jì)好后添加進(jìn)發(fā)射器類(lèi)中。屬性修改器是根據(jù)一定的規(guī)則設(shè)計(jì)好用來(lái)對(duì)粒子屬性進(jìn)行修改的模塊,如:顏色修改器、速度修改器、位置修改器等。渲染器是基于GPU的可編程著色器設(shè)計(jì)的,各個(gè)著色器都有相應(yīng)的功能[4]。
3.2 系統(tǒng)模型詳細(xì)設(shè)計(jì)
通用粒子系統(tǒng),要滿足粒子系統(tǒng)的管理、粒子的產(chǎn)生、更新、渲染等需求,需要使用大量的代碼,而且對(duì)渲染部分的控制使用的編程語(yǔ)言還不同,在一個(gè)程序中實(shí)現(xiàn)顯然困難較大[5]。如果把通用粒子系統(tǒng)模型分成粒子系統(tǒng)模塊、粒子發(fā)射器模塊、屬性修改器模塊以及渲染器模塊,分別對(duì)各模塊進(jìn)行編程實(shí)現(xiàn),編程的難度要小多了。而且這種做法還可以提升代碼的重用性以及方便屬性和功能的擴(kuò)充。比如粒子系統(tǒng)中的發(fā)射器模塊,若只設(shè)計(jì)了圓形、線性、球形發(fā)射器等,當(dāng)新的特效仿真需要用到柱形發(fā)射器時(shí),就只需要在模塊下,添加一個(gè)繼承于發(fā)射器類(lèi)、又具有柱形特征的柱形發(fā)射器的類(lèi)就可以實(shí)現(xiàn)了,操作起來(lái)十分簡(jiǎn)便。
通過(guò)以上分析,該文設(shè)計(jì)了通用粒子系統(tǒng)模型類(lèi)結(jié)構(gòu)圖,如圖3所示。
圖3 通用粒子系統(tǒng)模型類(lèi)圖
模型中各個(gè)類(lèi)的功能如下:
粒子系統(tǒng)管理類(lèi),負(fù)責(zé)管理場(chǎng)景中所有的粒子系統(tǒng),這些粒子系統(tǒng)實(shí)現(xiàn)了戰(zhàn)場(chǎng)中所有對(duì)仿真要求較高的特殊效果。
粒子系統(tǒng)類(lèi):管理本系統(tǒng)中的所有粒子。
粒子發(fā)射器類(lèi):發(fā)射滿足不同效果的具有一定初始值和特定變化規(guī)律的粒子。
屬性修改器類(lèi):根據(jù)粒子屬性的變化規(guī)律動(dòng)態(tài)地更新粒子形狀和狀態(tài)。
粒子渲染器類(lèi):就是綜合實(shí)現(xiàn)粒子的各種效果,把系統(tǒng)模擬的最終效果渲染出來(lái)。
4 實(shí)驗(yàn)效果
通用粒子系統(tǒng)可以完成對(duì)一個(gè)場(chǎng)景中多個(gè)不同精度不同種類(lèi)戰(zhàn)場(chǎng)特殊效果的同時(shí)仿真實(shí)現(xiàn),關(guān)鍵是要通過(guò)判定視點(diǎn)距離來(lái)區(qū)分仿真方法,分析各個(gè)常用戰(zhàn)場(chǎng)特殊效果的特征確定相應(yīng)的粒子發(fā)射器和屬性的更新規(guī)則。利用本文的通用粒子系統(tǒng)模型構(gòu)建的爆炸特效如圖4所示,火焰特效如圖5所示。
圖4 爆炸特效
圖5 火焰特效 (下轉(zhuǎn)第1125頁(yè))
(上接第1121頁(yè))
5 小結(jié)
本文從粒子系統(tǒng)的相關(guān)定義入手,通過(guò)對(duì)粒子系統(tǒng)建模過(guò)程的分析,抽取虛擬戰(zhàn)場(chǎng)特效中的共同特性,建立了戰(zhàn)場(chǎng)特效的通用粒子系統(tǒng)模型,對(duì)其結(jié)構(gòu)及功能進(jìn)行了深入的研究,并使用該模型實(shí)現(xiàn)了多種常見(jiàn)的戰(zhàn)場(chǎng)特效,具有很好的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1] 華澤璽,王迎春,孫建順.基于粒子系統(tǒng)的爆炸效果仿真研究[J].計(jì)算機(jī)科學(xué),2012.39(4):278-281.
[2] 羅軍.基于流的粒子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:四川師范大學(xué),2007.
[3] 張芹等.基于粒子系統(tǒng)的建模方法研究[J].計(jì)算機(jī)科學(xué),2003.30(8):144-146.
[4] 曹陽(yáng)勇.真實(shí)感通用粒子系統(tǒng)的實(shí)時(shí)渲染研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011.
[5] 吳繼承,江南.虛擬現(xiàn)實(shí)中粒子系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)仿真,2004,11(21):137-140.