趙柏宇 全吉成 王平

【摘 要】介紹了粒子系統特點,建模原理,基本模型和對于物理方法的優越性。并闡述了粒子系統中粒子的一些屬性,并給出了粒子產生的流程圖
【關鍵詞】粒子;粒子系統;建模;流程圖
如今,計算機圖形學技術發展迅速,自然場景景物的模擬漸漸的成為人們關注的交點,利用物理模型進行模擬可以達到較好的繪制效果,但是會消耗大量的時間。相反的粒子系統的提出很好的解決了耗時的問題,但是對于復雜的場景運用粒子系統模擬會丟失一些細節,使模擬效果不夠真實,因此本章先對粒子系統和物理模型分別進行介紹,再將粒子系統與物理方法相結合建立模型。
1 粒子系統建模原理
1.1 粒子系統理論概述
為了解決由大量小顆粒組成的自然場景在電腦屏幕顯示的模擬[1]與顯示的問題,在1983年Reeves[2]提出粒子系統這一重要理論,該理論有效的利用簡單的算法來實現具有不規則形狀且變化復雜的自然場景[3],例如大規模爆炸、煙霧[4-5]、火焰、雨雪及云的模擬都可以利用粒子系統來模擬完成。
粒子系統具有很大的隨機性,是由大量的粒子元素構成的,這恰好滿足了自然場景隨機運動以及擴散的條件,隨著時間的推移,粒子數目不斷增多,從自然場景的局部構建到整體構建,形成了完整的建模過程。
1.2 粒子系統的特點和缺點
與傳統的物理方法建模相比,粒子系統有著自身獨特的優勢:
(1)選擇靈活性:粒子系統是通過大量的粒子或幾何圖元組合在一起形成大規模的自然場景,對于場景的不同,粒子數量和粒子基本圖元的選擇都具有很大的靈活性,我們可以使用點作為基本圖元,也可以使用多變性作為基本圖元,這樣就可以不必按照傳統圖形學的嚴格用多邊形的方法來描述。當然,我們可以選擇用10000粒子模擬戰場中的大規模爆炸,也可以用3000粒子模擬蠟燭的火焰,粒子數目的多少取決與場景的大小,這些靈活的處理會在算法上得到簡化,提高實時性。
(2)動態靈活性:與傳統的建模方法不同,粒子系統的建模是一個動態的過程,摒棄了原有的靜態系統。粒子系統可以模擬物體的動態特征,粒子都是隨著時間的推移而發生變化,位移的變化,速度的變化,顏色的變化以及形狀的變化等等,粒子屬性的不斷變化使得整體系統形態發生變化。
(3)隨機靈活性:粒子系統的運行符合隨機過程,粒子的各種屬性值是在一定范圍內通過隨機過程隨機產生的數值,并且隨著時間的推移各種屬性都在進行隨機的變化,通過調整參數可以改變視覺效果。
盡管粒子系統在模擬不規則物體方面有著很大的優越性,但是還是有一定不足之處:
(1)粒子系統中粒子的數量直接影響渲染的實時性,一些大規模的場景需要大量的粒子繪制,這樣整個系統的開銷十分龐大,降低了實時性。因此,在模擬大規模場景的物體時需要把握粒子的數量,使得真實性和實時性達到平衡,這也需要大量的實驗來驗證完成。
(2)粒子系統的模擬主要針對的是不規則的物體,相比模擬規則形狀的物體,粒子系統方法就不一定能達到最好的效果,相反可能會丟失一些細節。因此在模擬不規則物體的時候,細節的變化的模擬將是一大挑戰。
2 粒子系統的基本模型
粒子系統是由大量稱為粒子的簡單體素組成的,這些粒子都有屬于自己的一組屬性,位置、速度、顏色、大小、生命周期等。每一個粒子都要經歷完整的生命周期:產生,運動和死亡。粒子通常在指定的區域又隨機過程產生[6],并不斷更新屬性,最后死亡。由于粒子的不斷運動,使得模擬的場景具有一定的動態性,因此用粒子系統模擬戰場煙霧,爆炸以及火焰會有獨特的效果。
通常粒子系統模擬自然場景時的基本步驟如下:
(1)產生粒子并初始化屬性。根據所要繪制的場景選擇產生粒子的位置,數量并對這些粒子進行初始化屬性賦值,最后將粒子加入粒子系統中。
(2)粒子屬性的更新。根據模擬物體的運動規律及時更新粒子的運動位置、速度、生命周期等屬性。
(3)將“死亡”粒子從系統中刪除。隨著粒子屬性的不斷更新,一些粒子已經達到了自己的生命周期,或者顏色與背景重合,為了提高整個系統的性能,需要將“死亡”粒子從系統中除去。
(4)繪制圖像。對于系統中尚存在的那些粒子,選擇一定的繪制算法將其繪制成圖像并通過屏幕顯示出來。
粒子系統產生的流程圖模型如圖1所示:
圖1所示的是粒子生成的流程,但是在粒子系統中,不同粒子屬性的更新方式不盡相同,一般粒子都會具有以下幾種屬性:
1.粒子所在位置:Position
2.粒子的速度:Velocity
3.粒子的大小:Size
4.粒子的透明度:Alpha
5.粒子的顏色:Color
6.粒子的生命周期:Lifetime
為了方便管理每個粒子,我們在編寫程序中可以將粒子歸為一個類ParticleGroup。相應的偽代碼如下所示:
Class ParticleGroup
{
int ParticleCount;//粒子數量
Init();//初始化粒子屬性
Update();//粒子屬性更新
Void delete(int i);//刪除死亡粒子
Bool Add();//增加新的粒子
Render();//渲染粒子系統
Shutdown()//關閉粒子系統
}
在粒子系統的基本模型中可以分為三個部分:層次結構部分,粒子繪制部分,粒子系統控制機制。在本節中提到的4個步驟中,步驟(1)(2)(3)共同組成了粒子系統的控制機制,而步驟
(4)是粒子繪制部分。在實際的模擬場景中,根據不同的模擬場景的特點來確定以上基本步驟。
3 結束語
粒子系統可以在各種各樣的環境下對不規則的自然場景進行建模,粒子的隨機性可以模擬動態的場景,并且可以達到較好的效果,通過粒子屬性的不斷更新來完成粒子的運動狀態,最后將死亡的粒子從系統中刪除,運用粒子系統建模將是近年來學者們研究的重點方向。
【參考文獻】
[1]龐新,王相海.基于0penGL的禮花粒子系統模擬研究[J].計算機科學,2008,35(5):216-219.
[2]Reeves W T .Particle System-a Technique for Modeling a Class of Fuzzy Object [J].ACM Computer Graphics (SIGGRAPH83)(S0730-0301),1983,17(30):359-376.
[3]徐陽東.基于粒子系統不規則景物建模研究[D].濟南:山東師范大學,2009.
[4]張海山,吳家鑄.基于粒子系統的火箭發射煙霧特效實現[J].微計算機信息(管控一體化卷,2008,24(12-3):248-249.
[5]趙春霞,張艷,戰守義.基于粒子系統方法的三維火焰模擬[J].計算機工程與應用,2004,40(28):73-75.
[6]汪繼文,張妍妍,陸和軍一種基于改進的粒子系統的煙花模擬[J].電腦知識與技術,2009(12):9805-9807.
[責任編輯:王偉平]