一个简单的粒子系统
来源:互联网 发布:java list remove用法 编辑:程序博客网 时间:2024/05/07 15:18
一个简单的粒子系统
一个简单的小程序,欢迎大家都来交流交流。
环境要求
环境: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
- 一个简单的粒子系统
- 一个简单的粒子系统的实现
- 简单的粒子系统~~
- Unity3D 粒子系统实现一个简单的爆炸效果
- 粒子系统的简单实现
- 基于Direct3D实现简单的粒子系统
- 基于Direct3D实现简单的粒子系统
- opengles实现简单的粒子系统
- Cesium的粒子系统做的一些简单例子
- iOS粒子系统,简单了解
- CAEmitterLayer CAEmitterCell 一个基于Core Animation的粒子发射系统
- 粒子系统的管理
- 粒子系统的学习
- iOS的粒子系统
- 粒子系统的实现
- unity粒子系统简单常用功能介绍
- 简单BitmapData粒子的实现
- BitmapData简单的粒子效果
- CSDN问答频道“华章杯”11月份排行榜出炉,请上榜用户提交相关邮寄信息
- 用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续)
- 窗函数的作用
- Java项目性能监控和调优工具---------------Javamelody
- ffmpeg 使用总结
- 一个简单的粒子系统
- Fragment使用—侧边栏
- Java集合LinkedList模拟队列
- 悟透JavaScript
- Java多线程-线程的调度(让步)
- freemarker用法小结
- 有页头页脚的ALV例子 2007-11-06 18:55 707人阅读 评论(0) 收藏 举报 listeventscommentscommandlayoutfunction *&-------
- 抓取模拟器中的数据包
- UIKit类继承图