欢迎来到天天文库
浏览记录
ID:39892109
大小:1.02 MB
页数:8页
时间:2019-07-14
《游戏开发实验8》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验八:粒子系统一、实验目的掌握粒子系统的的原理,熟悉Ogre中粒子系统的结构和使用方法.二、实验仪器VisualStudio2005三、实验原理及过程//利用Ogre实现一个粒子系统效果,并描述程序实现时的思路包括对每个调用的API以及脚本进行详细说明基本概念:粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的gamephysics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视
2、觉效果等等。粒子系统在三维显示中占有很重要的位置,如3D中的雨,雪,喷泉,爆炸等效果都是粒子完成的。粒子是用四边形来表示的,它有长宽,和其方向,有数量和材质,还有重量。这些属性封在粒子属性变换器(Affector)中,Affector中包含颜色衰退变换器(colourFadeAffector)和线形影响变换器(LinearForceAffector)和点状粒子发生器(PointEmmiter),由这些组成粒子脚本文件,以.Particle为其扩展名。点状粒子发生器随机地从单一的点发射粒子;盒状粒子发生
3、器随机的从一个区域发射粒子。通过创建Plugins你可以向ogre里增加一个新的发谁。当前ogre只支持点状粒子发生器和盒状粒子发射器。当粒子发生器不停的喷发大量粒子时,就可以形成烟、火和爆炸等效果,结构图如下:每个引擎都会有自己的粒子系统,粒子系统特效在游戏中运用广泛,比如射击类游戏中的爆炸特效,烟雾特效,开枪时喷出的火焰,撞击时击出的火花等等多半由粒子系统实现。粒子系统的基本单元是粒子,每个粒子一般具有形状、大小、颜色、透明度、位置、速度、加速度、方向、生命周期等属性。每一帧,粒子系统一般都会执行
4、如下步骤:1)产生新的粒子,并赋予相应的属性;2)删除超过生命周期的粒子;3)更新粒子的动态属性;4)渲染所有有效粒子。OGRE粒子系统组成OGRE粒子系统还是比较清晰易懂的,它由ParticleSystemManage(粒子系统管理器)、ParticleSystem(粒子系统)、ParticleSystemRenderer(粒子渲染器)、ParticleEmitter(粒子发射器)、ParticleAffector(粒子影响器)、Particle(粒子)等组成。1)ParticleSystemMan
5、ager(粒子系统管理器)此类类似于OGRE中的SceneManager,单件模式,内含粒子系统工厂集合,粒子发射器工厂集合,粒子影响器工厂集合,以及粒子渲染器工厂集合,用于创建和管理粒子系统、粒子发射器、粒子影响器、粒子渲染器。该类还负责加载和分析粒子系统脚本。2)ParticleSystem(粒子系统)具体的粒子系统类,它需要包含具体的ParticleEmitter集合、ParticleAffector集合、ParticleSystemRenderer,Particle集合,用于粒子的创建、更新、
6、渲染。3)ParticleEmitter(粒子发射器)用于创建粒子,赋予粒子初始属性赋值,最重要的方法是_initParticle(),该类为抽象类,OGRE中提供了如下派生类,自己也可以根据需要编写自己的Emitter:AreaEmitterBoxEmitterCylinderEmitterEllipsoidEmitterHollowEllipsoidEmitterPointEmitterRingEmitter发射器中几个参数解释:1.angle粒子发射器发射出的粒子的最大偏移角2.colour设置
7、所有发射出的粒子的固定颜色3.colour_range_start&colour_range_end粒子颜色将为这2中颜色值之间随意的产生4.emission_rate粒子发射器发射出的粒子数5.velocity每次发射粒子的恒定速度6.time_to_live每个粒子在销毁之前存活的时间。不过,它可以利用参数repeat_delay复活7.duration发射器发射的粒子处于激活状态的数量8.repeat_delay粒子销毁到激活需要等待的时间数4)ParticleAffector(粒子影响器)用于
8、在粒子的生命周期内更新粒子的属性,最重要的方法是_affectParticles(),OGRE中提供了如下派生类,自己也可以根据需要编写自己的Affector:ColourFaderAffectorColourImageAffectorColourInterpolatorAffectorDeflectorPlaneAffectorDirectionRandomiserAffectorLinearForceAffectorRotationAffectorS
此文档下载收益归作者所有