粒子系統
粒子系統表示三維計算機圖形學中模擬一些特定的模糊現象的技術,而這些現象用其它傳統的渲染技術難以實現的真實感的遊戲圖形。經常使用粒子系統模擬的現象有火、爆炸、煙、水流、火花、落葉、雲、霧、雪、塵、流星尾跡或者象發光軌跡這樣的抽象視覺效果等等。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Particle_sys_fire.jpg/220px-Particle_sys_fire.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Particle_sys_galaxy.jpg/220px-Particle_sys_galaxy.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/Particle_sys_trail.jpg/220px-Particle_sys_trail.jpg)
典型實現
[編輯]通常粒子系統在三維空間中的位置與運動是由發射器控制的。發射器主要由一組粒子行為參數以及在三維空間中的位置所表示。粒子行為參數可以包括粒子生成速度(即單位時間粒子生成的數目)、粒子初始速度向量(例如什麼時候向什麼方向運動)、粒子壽命(經過多長時間粒子湮滅)、粒子顏色、在粒子生命周期中的變化以及其它參數等等。使用大概值而不是絕對值的模糊參數佔據全部或者絕大部分是很正常的,一些參數定義了中心值以及允許的變化。
典型的粒子系統更新循環可以劃分為兩個不同的階段:參數更新/模擬階段以及渲染階段。每個循環執行每一幀動畫。
模擬階段
[編輯]在模擬階段,根據生成速度以及更新間隔計算新粒子的數目,每個粒子根據發射器的位置及給定的生成區域在特定的三維空間位置生成,並且根據發射器的參數初始化每個粒子的速度、顏色、生命周期等等參數。然後檢查每個粒子是否已經超出了生命周期,一旦超出就將這些粒子剔出模擬過程,否則就根據物理模擬更改粒子的位置與特性,這些物理模擬可能象將速度加到當前位置或者調整速度抵消摩擦這樣簡單,也可能象將外力考慮進取計算正確的物理拋射軌跡那樣複雜。另外,經常需要檢查與特殊三維物體的碰撞以使粒子從障礙物彈回。由於粒子之間的碰撞計算量很大並且對於大多數模擬來說沒有必要,所以很少使用粒子之間的碰撞。
每個粒子系統都有用於其中每個粒子的特定規則,通常這些規則涉及到粒子生命周期的插值過程。例如,許多系統在粒子生命周期中對粒子的阿爾法值即透明性進行插值直到粒子湮滅。
渲染階段
[編輯]在更新完成之後,通常每個例子用經過紋理映射的四邊形sprite進行渲染,也就是說四邊形總是面向觀察者。但是,這個過程不是必須的,在一些低解像度或者處理能力有限的場合粒子可能僅僅渲染成一個像素,在離線渲染中甚至渲染成一個元球,從粒子元球計算出的等值面可以得到相當好的液體表面。另外,也可以用三維網格渲染粒子。
對藝術家友好的粒子系統工具
[編輯]在許多三維建模及渲染包內部就可以創建、修改粒子系統,如 3D Studio Max、Maya 以及 Blender 等。這些編輯程序使藝術家能夠立即看到他們設定的特性或者規則下粒子系統的表現,另外還有一些插件能夠提供增強的粒子系統效果,例如 AfterBurn 以及用於流體的 RealFlow。而2D的粒子特效軟件中particleIllusion最為出色,因為他的渲染比一般的3D軟件快較為平面化。Combustion 這樣的多用途軟件或者只能用於粒子系統的 Particle Studio 等都可以用來生成電影或者視頻中的粒子系統。
外部連結
[編輯]- Particle Systems: A Technique for Modeling a Class of Fuzzy Objects (頁面存檔備份,存於互聯網檔案館) – William T. Reeves (ACM Transactions on Graphics, April 1983)
- 3ds Max particle systems tutorials (頁面存檔備份,存於互聯網檔案館) (en)