- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15讲 粒子系统
1、定义
粒子系统到底是什么?所谓的粒子系统,就是将人们看到的物体运动和自然现象,用一系列运动的粒子来描述,再将这些粒子运动的轨迹映射到显示屏上,在显示屏上看到的就是物体运动和自然现象的模拟效果了。
利用粒子系统,可以在屏幕中表现诸多的特殊效果,如:焰火、火苗、落叶、雪花飞舞等。不怕做不到,就怕想不到。只要你的想象力足够丰富,你可以创造出意想不到的奇迹来。
粒子系统的基本思想是:采用许多形状简单的微小粒子作为基本元素,用它们来表示不规则模糊物体。这些粒子都有各自的生命周期,在系统中都要经历“产生”、“运动和生长”及“消亡”三个阶段。粒子系统是一个有“生命”的系统,因此不象传统方法那样只能生成瞬时静态的景物画面,而是可以产生一系列运动进化的画面,这使得模拟动态的自然景物成为可能。
利用粒子系统生成画面的基本步骤是:
1、粒子源产生新的粒子(初始化粒子);
2、赋予每一新粒子一定的属性(更新粒子),并将粒子的生命周期递减一个时间步;
3、删去那些已经超过生存期的粒子(删除后可以根据具体需要重新初始化或做其他处理);
4、根据粒子的动态属性对粒子进行移动和变换;
5、显示由有生命的粒子组成的图像。
粒子系统采用随机过程来控制粒子的产生数量,确定新产生粒子的一些初始随机属性,如初始运动方向、初始大小、初始颜色、初始透明度、初始形状以及生存期等,并在粒子的运动和生长过程中随机地改变这些属性。粒子系统的随机性使模拟不规则模糊物体变得十分简便。
粒子系统应用的关键在于如何描述粒子的运动轨迹,也就是构造粒子的运动函数。函数选择的恰当与否,决定效果的逼真程度。其次,坐标系的选定(即视角)也有一定的关系,视角不同,看到的效果自然不一样了。
2、粒子系统生命周期
每颗粒子的生命周期或工作处理流程如图:
3、粒子系统数据结构
/** 粒子结构*/
struct Particle
{
D3DXVECTOR3 position; /** 粒子的位置*/
D3DXVECTOR3 velocity; /** 粒子的速度*/
D3DXVECTOR3 acceleration; /** 粒子的加速度*/
float lifetime; /** 粒子生命值*/
float dec; /** 粒子消失的速度*/
float size; /** 粒子尺寸*/
D3DCOLOR/*D3DCOLORVALUE */ color; /** 粒子的颜色*/
};
4、粒子系统类
(1)Particle.h文件
#pragma once
#include d3d9.h
#include d3dx9.h
/** 粒子结构*/
struct Particle
{
D3DXVECTOR3 position; /** 粒子的位置*/
D3DXVECTOR3 velocity; /** 粒子的速度*/
D3DXVECTOR3 acceleration; /** 粒子的加速度*/
float lifetime; /** 粒子生命值*/
float dec; /** 粒子消失的速度*/
float size; /** 粒子尺寸*/
D3DCOLOR/*D3DCOLORVALUE */ color; /** 粒子的颜色*/
};
class CParticle
{
public:
CParticle(); /** 构造函数*/
virtual ~CParticle(); /** 析构函数*/
/** 粒子的初始化*/
virtual bool Init(int _num);
/** 粒子的渲染*/
virtual void Render() = 0;
/** 粒子的更新*/
virtual void Update() = 0;
protected:
int m_iNum; /** 粒子总数目*/
Particle* m_pList; /** 粒子指针*/
};
(1)Particle.cpp文件
#include Particle.h
/** 构造函数*/
CParticle::CParticle()
{
m_
您可能关注的文档
- 第13课 第二次世界大战的爆发讲解.ppt
- 第14课植树的牧羊人讲解.ppt
- 第14章零件表面的加工方法讲解.ppt
- 第14章生物膜法讲解.ppt
- 第14课 物质生活与习俗的变迁讲解.ppt
- 第14章页面设置与打印工作表讲解.doc
- 第14课-新民主主义革命的崛起讲解.ppt
- 第14课红军不怕远征难讲解.ppt
- 第14课《植树的牧羊人》课件1讲解.ppt
- 第14课秦汉时期的文化(中华书局新版)讲解.ppt
- 西安理工大学高科学院《宽带接入与互联网通信》2023-2024学年第一学期期末试卷.doc
- 江苏省横林高级中学2024届高三(最后冲刺)语文试卷含解析.doc
- 吉林省长春外国语校2025届第二学期教学质量检测试题初三英语试题(二模)含答案.doc
- 西北工业大学《统计软件应用实训》2023-2024学年第一学期期末试卷.doc
- 江苏省辅仁高级中学2025年高考语文试题二模试题及参考答案含解析.doc
- 黑龙江省牡丹江管理局2025届初三下学期教学质量检查物理试题理试题含解析.doc
- 联盟)山东省菏泽一中2025届高三第五次模拟考试英语试题试卷含解析.doc
- 陕西交通职业技术学院《中华文明简史》2023-2024学年第一学期期末试卷.doc
- 2025年江西省景德镇一中初三阶段性调研测试数学试题不含附加题含解析.doc
- 重庆市重庆一中2024年高三第六次模拟考试英语试卷含解析.doc
文档评论(0)