粒子系統的簡單實現

2021-04-09 02:41:44 字數 1059 閱讀 4067

粒子系統說起來高深摸測,其實就是許多許多許多許多許多許多的點圖象,然後對其進行執行速度,方向,衰減的處理。

不可少的,先定義一些全域性變數。

const

intmaxpoint

=1000

;      //粒子的個數;

float slowdown=2.0f;  

float xspeed;     //粒子的速度,這裡沒有給出。可以自己加

float yspeed;  

gluint loop;     //迴圈變數

gluint col;   //顏色變數。注意:再迴圈之中必須加上乙個判斷語句。因為我們的顏色只有12種!

既然是對n多資料操作的系統,首先我們需要擁有乙個資料結構。

typedef 

struct

spoint;

插入乙個顏色的定義(這裡面定義了12種顏色。估計沒問題):

static

glfloat colors[

12][3]

=//

顏色,,,,

,,,,

,,,};

然後顯示是初始化粒子,自然大部分的資料必須依靠計算機隨機產生(除非你認為自己以人力可以將1000個粒子編排得飄飄亮亮而完全不做作);

其實就是對上面結構的簡單賦值;

spoint sp;

for(loop=0

;loop

<

maxpoint;loop

++)                                  //初始化粒子

最後是顯示粒子:

for(loop=0

;loop

<

maxpoint;loop

++)                    

//迴圈所有的粒子

...}}

迴圈中加上延遲是必不可少的,這裡也就不列舉了。

ok了。看看生成的圖象是否讓你驚喜?

這只是乙個簡單的教程,而且是根據nehe的教程(這一章似乎沒有中文版)改編的,希望看了後能夠對粒子系統有乙個較為直觀的了解。

粒子系統 烟花效果的實現

提到烟花,大家首先想到的都是天空上那綻放的炫美,或者手中炫目的白光,作為計算機體制內的人,以物件導向的思維來看待烟花的話,會得到什麼呢?我們可以將美麗的烟花效果抽象為由乙個個粒子組成的乙個系統,將粒子作為物件,它擁有座標 顏色 速度 生命週期等屬性,通過對大量粒子的顏色 路徑處理,就可以得到近似的烟...

煙火的粒子系統實現介紹

之前的兩篇部落格介紹了粒子系統和粒子系統中的繪製 directx中的粒子系統和粒子系統的繪製 其中介紹的也是粒子系統中比較通用的方法以及屬性,但是具體的粒子系統還是需要根據自己的情況來新增一些新的方法,現在我們就來簡單的看一下實現乙個具體的煙火粒子系統 firework 需要實現的具體的內容。fir...

CCParticleSystem粒子系統

第一次接觸粒子系統,以前遊戲裡面的一些小特效,像製作動畫一樣,是採用一幀一幀的切出來的,由於這種特效,變化無常,切出來的幀,都非常的大,也很耗記憶體,一下就記憶體溢位了.呵呵 主要是以前都沒有接觸過.現在接觸了,以後遊戲就可以用到了.開心 建立乙個ccparticlesystem粒子系統 ccpar...