粒子系统的简单实现

粒子系统说起来高深摸测,其实就是许多许多许多许多许多许多的点图象,然后对其进行运行速度,方向,衰减的处理。

本文粒子系统的实现是基于图形API,OPenGL。语言是:C++。

不可少的,先定义一些全局变量。

const   int  MaxPoint = 1000 ;      //粒子的个数;
float slowdown=2.0f;  
float xspeed;     //粒子的速度,这里没有给出。可以自己加
float yspeed;  
GLuint loop;     //循环变量
GLuint col;   //颜色变量。注意:再循环之中必须加上一个判断语句。因为我们的颜色只有12种!

既然是对N多数据操作的系统,首先我们需要拥有一个数据结构。

typedef  struct
{

思考一下。粒子系统需要些什么?

①方位数据。

②颜色数据。

③移动方向与速度。      

④是否活动等衰减数据。

就是这些。

     bool  active;       // 该粒子是否活动;
     float  life;         // 该粒子生命值^@^
     float  fade;       // 该粒子衰减速度

    
float  x;          // 坐标数据
     float  y;         
    
float  z;
 
     
float  r;                // 颜色数据
     float  g;
    
float  b;

    
float  xi;                 // 运动方向及速度
     float  yi;
    
float  zi;

    
float     xg;    //  重力加速度
     float     yg;     
    
float     zg;        

}SPoint;

 

 

插入一个颜色的定义(这里面定义了12种颜色。估计没问题):

static  GLfloat colors[ 12 ][ 3 ] =                  //  颜色
{
    {
1.0f , 0.5f , 0.5f },{ 1.0f , 0.75f , 0.5f },{ 1.0f , 1.0f , 0.5f
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值