OGRE粒子系统简介
1,粒子系统介绍
每个引擎都会有自己的粒子系统,粒子系统特效在游戏中运用广泛,比如射击类游戏中的爆炸特效,烟雾特效,开枪时喷出的火焰,撞击时击出的火花等等多半由粒子系统实现。粒子系统的基本单元是粒子,每个粒子一般具有形状、大小、颜色、透明度、位置、速度、加速度、方向、生命周期等属性。每一帧,粒子系统一般都会执行如下步骤:
1) 产生新的粒子,并赋予相应的属性;
2) 删除超过生命周期的粒子;
3) 更新粒子的动态属性;
4) 渲染所有有效粒子。
2, OGRE 粒子系统。
OGRE粒子系统还是比较清晰易懂的,它由ParticleSystemManage(粒子系统管理器)、ParticleSystem(粒子系统)、ParticleSystemRenderer(粒子渲染器)、ParticleEmitter(粒子发射器)、ParticleAffector(粒子影响器)、Particle(粒子)等组成。
1) ParticleSystemManager(粒子系统管理器)
此类类似于OGRE中的SceneManager,单件模式,内含粒子系统工厂集合,粒子发射器工厂集合,粒子影响器工厂集合,以及粒子渲染器工厂集合,用于创建和管理粒子系统、粒子发射器、粒子影响器、粒子渲染器。该类还负责加载和分析粒子系统脚本。
2) ParticleSystem(粒子系统)
具体的粒子系统类,它需要包含具体的ParticleEmitter 集合、ParticleAffector集合、ParticleSystemRenderer,Particle集合,用于粒子的创建、更新、渲染。
3) ParticleEmitter(粒子发射器)
用于创建粒子,赋予粒子初始属性赋值,最重要的方法是_initParticle(),该类为抽象类,OGRE中提供了如下派生类,自己也可以根据需要编写自己的Emitter:
AreaEmitter
BoxEmitter
CylinderEmitter
EllipsoidEmitter
HollowEllipsoidEmitter
PointEmitter
RingEmitter
4) ParticleAffector(粒子影响器)
用于在粒子的生命周期内更新粒子的属性,最重要的方法是 _affectParticles(),OGRE中提供了如下派生类,自己也可以根据需要编写自己的Affector:
ColourFaderAffector
ColourImageAffector
ColourInterpolatorAffector
DeflectorPlaneAffector
DirectionRandomiserAffector
LinearForceAffector
RotationAffector
ScaleAffector
6) ParticleSystemRenderer(粒子渲染器)
该类用于渲染粒子系统,该类为抽象类,ORGE提供了BillboardParticleRenderer具体类,自己也可以根据需要编写自己的粒子渲染类。
7) Particle(粒子)
粒子系统的基本元素,粒子,存储了粒子的所有属性和状态。
3 OGRE粒子系统执行流程
1)初始化
ParticleSystemManager::addEmitterFactory()
ParticleSystemManager::addAffectorFactory()
ParticleSystemManager ::addRendererFactory()
ParticleSystemManager::createTemplate()
ParticleSystem::setRenderer()
ParticleSystemManager::_createRenderer()
ParticleSystem::addEmitter()
ParticleSystemManager::_createEmitter()
ParticleSystem::addAffector()
ParticleSystemManager::_createAffector()
2) 每一帧,执行如下更新
ParticleSystem::_update()
ParticleSystem::_triggerAffectors()
Affector::_affectParticles()
ParticleSystem ::_triggerEmitters()
Emitter::_initParticle()
ParticleSystem::_updateRenderQueue()
ParticleRenderer::_updateRenderQueue()
转载于:https://www.cnblogs.com/cxrs/archive/2012/06/07/2540678.html
OGRE粒子系统简介相关推荐
- 火炬之光(TorchLight)使用的Ogre粒子系统插件ParticleUniverse研究
火炬之光(TorchLight)使用的Ogre粒子系统插件ParticleUniverse研究 转载:http://mobilegamebase.com/blog/article.asp?id=30 ...
- 3dmax:3dmax三维动画之粒子系统简介、基本场景之详细攻略
3dmax:3dmax三维动画之粒子系统简介.基本场景之详细攻略 目录 3dmax三维动画之粒子系统简介.使用方法之详细攻略 粒子系统简介.使用方法
- OGRE粒子系统脚本详解
粒子脚本允许实例化地在自己的脚本代码中定义粒子系统,而不必在源代码中进行设置,可以在做任何修改对哦能得到快速的回应,脚本里定义的粒子系统被用作模版,并且多个实际的系统可以在运行时从脚本里被创建. 粒子 ...
- UnityParticle1:粒子系统简介
前置:UnityShader 一.创建粒子 创建方式:GameObject -> Effects -> ParticleSystems,这和创建 3D 物体方法一样,就是分类选择 Effe ...
- 捕鱼系列之2:magic3d粒子系统简介
上一篇捕鱼文章写了那些很棒很炫目的特效,那么这些特效是从哪里来的呢?这里我要抖落一些干货了: THE MAGIC3D REVIEW: MAGIC例子特效前瞻 粒子系统可以用来创造一些你在游戏和电影中看 ...
- Cocos2d-x内置粒子系统
内置粒子系统 内置的11粒子系统说明如下: ParticleExplosion:爆炸粒子效果,属于半径模式. ParticleFire:火焰粒子效果,属于重力径模式. ParticleFirework ...
- 老人关于OGRE引擎的总体介绍
[Ogre总揽],转至http://edu.gamfe.com/tutor/d/16715.html Ogre是一个庞大而纷杂的对象和模块集合,如果初学者希望直接从对象列表中得到什么信息的话,可能会感 ...
- J2ME 粒子系统实现(转)
粒子系统在图形学上的应用十分广泛 粒子系统在图形学上的应用十分广泛.最常见的,是通过控制大量的.具有相似行为的点元素,来描绘自然现象.例如下雨.下雪.火焰.水.雾等等.在家用控制台或PC上的2D.3D ...
- Unity Particle System 粒子系统简单介绍
一.Particle System 粒子系统简介 Particle System 是 Unity 内的一个专门用于制作特效的系统,相对来说是一个比较复杂的系统,有几百个可以控制和设置的参数选项. Un ...
最新文章
- 扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
- 阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一锅端
- linux 中文输入法 xshall,Centos6.7下安装ibus中文输入法
- volatile对原子性、可见性、有序性的保证
- windows常用的几个操作
- 从零开始学Axure原型设计(高级篇)
- C++中的STL--基本概念
- Linux环境通过java虚拟机定位程序问题位置的方法
- 电脑机房用成品——名词解释
- Android中利用LinearLayout动态添加控件
- 空间三维直线拟合matlab代码
- pytorch中的 nn.ModuleList 和 nn.Sequential
- 中国气象数据要注册或交钱才给,咱们就去美国下载免费数据
- Materials studio中的简单聚合物的建立及盒子的弛豫
- 企业进行客户关系管理的重要性是什么
- Wannacry“永恒之蓝”勒索病毒最全防范措施
- sci计算机论文发表论文格式,SCI论文发表的格式以及字体的要求是什么?
- Macbook删除苹果系统,装单系统win10系统
- Delphi官方下载地址
- Chromium浏览器下载
热门文章
- 集合 ---- 重复数
- Servlet ---- cookie session
- java中输出a个b_下面代码输出什么 ( ) var a=0,b=0; for(;a10,b7;a++,b++){ g=a+b; } console.log(g);_学小易找答案...
- 学硕论文选题计算机,计算机硕士论文题目分享
- 不恢复余数除法原理_《有余数的除法》教案
- 由方位角和长度如何确定坐标 已知第一个点的坐标
- Apollo注册到自己的Eureka注册中心+配置中心集群
- vue中实现国际化--语言切换(转载)
- [菜鸟SpringCloud实战入门]第九章:服务网关Zuul体验
- buildroot 编译问题