粒子系統的基本構成元素有: 粒子、系統 、發射器
粒子:
粒子是世界中的一點,加上長闊/半徑的參數就可以代表在世界的大小/體積
一般都是以極簡單資料結構去表示(如 struct)
在整個粒子系統中,主要用作儲存個別粒子資料
常見的參數有:
- 位置 (Vector3)
- 長闊 (Vector2)
- 半徑/尺寸參數 (float: 通常跟長闊參數二擇其一,視乎粒子的渲染方法而定)
- 速度 (Vector3: 通常會用作渲染速度的特效,如粒子依速度拉長)
- 顏色 (Vector4)
- 材質座標 (Vector2)
- 旋轉角度 (float: PointSprite/Billboard時用)
- 旋轉角度 (Quaternion: 三維旋轉昤粒子時用,如Mesh粒子)
系統:
系統裝載著所有粒子,並負責管理及更新粒子
初始系統時會有一個參數去決定最大粒子數目
如需新增粒子,必須由系統處取得
若果粒子數目已達到最大粒子數目,系統會拒絕新增粒子
發射器:
不同的發射器有不同的發射方式
發射的方式有點、線、面,或基於數學公式
此外,我將更新粒子位置的職責交了給發射器
這樣我可以:
- 作一個key - frame粒子位置並可以設定blending方法的發射器
- 作一個粒子會圍繞某一條三位軸加速的發射器






