一个简单的粒子系统

原创 2013年12月02日 16:02:28

一个简单的粒子系统

    一个简单的小程序,欢迎大家都来交流交流。

环境要求

    环境:glew-1.9,freglut,Opengl,IDE:vs2012,win32

粒子系统效果

    粒子实现的喷泉效果:

    喷泉效果参数:

// param1 构造参数

float startcol[4] = {0.5f, 0.3f, 0.2f, 1.0f};

float colfactor[4] = {-0.01f, 0.005f, 0.00f, 0.0f};

GLuint showlist = 0;

// param2 构造参数

float udvParam[3] = {1.0f, 0.0f, 0.0f}; // 方向向量不必为单位向量,因为  actionDescriptor 的构造函数会自动将其单位化

float rotateParam[3] = {0.0f, 0.0f, 90.0f};

float rotateVarParam[3] = {0.0f, 10.0f, 10.0f};

float speedParm = 0.06f;

float speedFactorParam[2] = {1.0f, 0.02f};

// param3 构造参数

uint32 lifelong = 2000; // 粒子生存时间ms

    粒子实现的落雪效果:

    落雪效果参数:

// param1 构造参数

float startcol[4] = {0.5f, 0.5f, 0.5f, 1.0f};

float colfactor[4] = { 0.0f, 0.0f, 0.00f, 0.0f};

GLuint showlist = 0;

// param2 构造参数

float origionPlaneParam[2] = {0.5f, 0.5f};

float planeNormalsParam[3] = {0.0f, -1.0f, 0.0f};

float speedParam = 0.002f;

float speedFactorParam[2] = {0.975f, 0.0f};

float forceParam[3] = {0.0f, 0.00f, 0.0f};

// param3 构造参数

uint32 lifelong = 2000; // 粒子生存时间ms

主要数据结构

    粒子系统中包含以下类和结构体:

class clock;

class randomMaker;
class appearanceDescriptor;
class actionDescriptor;
class lifeDescriptor;
class particle;
class anti;

    简单说明以下这些类的功能:clock是一个计时器;randomMaker是一个随机数产生器,是我从Opencv里刨出来的,精简之后封装了一下;particle是粒子类,包含了粒子的各种属性,颜色,速度,位置,方向,生命长度等;粒子的所有属性大致分为三种,外观,动作和生命期,为了描述方便我把三种属性分别封装为appearanceDescriptor(外观描述符),actionDescriptor(动作描述符),lifeDesCriptor(生命期描述符);anti用来管理一组粒子,构造anti是通过提供上边三个例子描述符的类规定粒子的外观,动作和存在的时间。

项目源文件及其下载地址

下载地址:particleSys.zip

下载后请认真核对压缩文件信息:
大小: 18464009 字节
MD5: 8AD880E643E7A078CEA7508C670E0D75
SHA1: CE000E3741FFD2945DAE57DECEFEA5A580E7E231
CRC32: 996BD6F0


相关文章推荐

超简洁的随机粒子群算法(PSO)程序(C/C++)

#include"stdio.h" #include"stdlib.h" #include"time.h" #include"math.h"   const int NU...
  • blesh
  • blesh
  • 2014年03月13日 17:33
  • 1749

【Visual C++】游戏开发五十 浅墨DirectX教程十八 雪花飞扬:实现唯美的粒子系统

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。   文章链接:http://blog.csdn.net/zhmxy555/article/details/8744805 作者:毛星云(浅...
  • zhmxy555
  • zhmxy555
  • 2013年04月01日 02:24
  • 28531

UE4学习2 使用粒子效果 C++

创建一个粒子组件并且绑定到物体的静态网格上。再再UE4里面找一个粒子资源右键copyreference 资源加入到粒子组件上  生成的物体就带粒子效果了 来。马不多 UParticleSyste...

粒子系统的简单实现

粒子系统说起来高深摸测,其实就是许多许多许多许多许多许多的点图象,然后对其进行运行速度,方向,衰减的处理。本文粒子系统的实现是基于图形API,OPenGL。语言是:C++。不可少的,先定义一些全局变量...
  • gameres
  • gameres
  • 2006年09月08日 14:47
  • 1371

opengl制作的一个简单的粒子系统

  • 2008年11月01日 23:36
  • 12KB
  • 下载

Unity3D 粒子系统实现一个简单的爆炸效果

Unity3D 爆炸效果 粒子系统
  • six_sex
  • six_sex
  • 2017年06月04日 09:39
  • 3572

文字特效,利用了一个粒子系统

  • 2011年07月13日 15:18
  • 1.01MB
  • 下载

MFC学习笔记之三(粒子系统+怪物简单AI+碰撞检测)

到上海找到住的地方之后,干的第一件事,就是抓紧时间学习,为了找到工作努力ing。。。 为了防止看不懂,补充一个到目前为止(下面的九截止,即本篇结束)的Hero类声明和类方法定义 class He...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个简单的粒子系统
举报原因:
原因补充:

(最多只允许输入30个字)