香港新浪網MySinaBlog 精選話題工具
« 上一篇 | 下一篇 »
Percy | 31st Dec 2008 | 遊戲製作 | (342 Reads)

粒子系統的基本構成元素有: 粒子、系統 、發射器

粒子:

粒子是世界中的一點,加上長闊/半徑的參數就可以代表在世界的大小/體積

一般都是以極簡單資料結構去表示(如 struct)

在整個粒子系統中,主要用作儲存個別粒子資料


 

常見的參數有:

- 位置 (Vector3)

- 長闊 (Vector2)

- 半徑/尺寸參數 (float: 通常跟長闊參數二擇其一,視乎粒子的渲染方法而定)

- 速度 (Vector3: 通常會用作渲染速度的特效,如粒子依速度拉長)

- 顏色 (Vector4)

- 材質座標 (Vector2)

- 旋轉角度 (float: PointSprite/Billboard時用)

- 旋轉角度 (Quaternion: 三維旋轉昤粒子時用,如Mesh粒子)

 

系統:

系統裝載著所有粒子,並負責管理及更新粒子

初始系統時會有一個參數去決定最大粒子數目

如需新增粒子,必須由系統處取得

若果粒子數目已達到最大粒子數目,系統會拒絕新增粒子

 

發射器:

不同的發射器有不同的發射方式

發射的方式有點、線、面,或基於數學公式

此外,我將更新粒子位置的職責交了給發射器

這樣我可以:

- 作一個key - frame粒子位置並可以設定blending方法的發射器

- 作一個粒子會圍繞某一條三位軸加速的發射器


[1]

"初始決定最大粒子數目", "若果粒子數目已達到最大粒子數目,系統會拒絕新增粒子" 很贊同這限制!


[引用] | 作者 Ricky | 31st Dec 2008 | [舉報垃圾留言]

[2]

Realtimecollisiondetection.com 有篇新文章講述 particle system 要注意的地方,很不錯
http://realtimecollisiondetection.net/blog/?p=91


[引用] | 作者 Ricky | 5th Jan 2009 | [舉報垃圾留言]

[3] Re: Ricky
Ricky :

沒有限制的結果不堪設想呢

這篇文章的技術很厲害!
我的文章太皮毛了
哈哈

Percy
[引用] | 作者 Percy | 5th Jan 2009 | [舉報垃圾留言]

[4]

謝謝


[引用] | 作者 Help | 7th Jan 2009 | [舉報垃圾留言]