1、安康学院电子与信息工程系实验报告课程名称 游戏程序设计实验名称 粒子系统 成绩姓名 学号 实验台号同组人员实验日期2014.05.26实验名称:粒子系统实验设备:vs2008、ogre sdk 计算机实验目的:1.学习什么是粒子系统和怎样使用它2.创建几个不同的粒子系统实验原理:一个例子系统由两到三个不同的部分组成发射器,粒子和效应器(可选择的) 。这三部分最重要的是粒子本身,正如它的名字粒子系统一样。一个粒子通过一个四边形显示一个颜色或者纹理,或者显卡的点渲染能力。当粒子使用一个四边形,这个四边形总是经旋转后正对着摄像机。每个粒子拥有一组参数,包括生存时间,方向和速率。虽然还有很多其它的参数
2、,但是这三个是粒子系统概念里最重要的三个参数。参数生存时间控制着一个粒子的生存和死亡。一般,一个粒子在它被销毁前是存活不了几秒种的。这个效果可以在我们之前的烟雾例子中看到。将会有一个粒子消失点。对于这些粒子,生存计时器得到 0 并且这些粒子被销毁。方向和速率描述粒子的移动行为。在这个烟雾例子中,我们的方向是向上。发射器创建一个预先定义每秒钟产生的粒子数量,可以看做是粒子的来源。效应器,从另一方面来说,不创建粒子但改变它们的一些参数。在这个场景中我们并没有看到任何的效应器,但之后将会应用到。一个效应器能够改变粒子方向,速率,或者发射器创建的粒子颜色。实验步骤1. 【创建一个在任意方向上以稳定时间
3、间隔爆炸不同颜色的粒子的粒子系统:】particle_system Fireworkmaterialparticle_widthparticle_heightquotaExamples/Smoke10105000billboard_typeemitter Pointpointemission_rate 100direction 0 1 0velocity 50angle 360duration 0.1repeat_delay 1color_range_start 0 0 0color_range_end 1 1 12.【在主程序中,创建 5 个这种粒子系统实例:】Ogre:ParticleSy
4、stem* partSystem1 =_sceneManager-createParticleSystem(“Firework1“,“Firework“);Ogre:ParticleSystem* partSystem2 =_sceneManager-createParticleSystem(“Firework2“,“Firework“);Ogre:ParticleSystem* partSystem3 =_sceneManager-createParticleSystem(“Firework3“,“Firework“);Ogre:ParticleSystem* partSystem4 =_s
5、ceneManager-createParticleSystem(“Firework4“,“Firework“);Ogre:ParticleSystem* partSystem5 =_sceneManager-createParticleSystem(“Firework5“,“Firework“);3. 【在主程序中,然后创建五个在空中不同位置的结点:】Ogre:SceneNode* node1 =_sceneManager-getRootSceneNode()-createChildSceneNode(Ogre:Vector3(0,10,0);Ogre:SceneNode* node2 =_
6、sceneManager-getRootSceneNode()-createChildSceneNode(Ogre:Vector3(10,11,0);Ogre:SceneNode* node3 =_sceneManager-getRootSceneNode()-createChildSceneNode(Ogre:Vector3(20,9,0);Ogre:SceneNode* node4 =_sceneManager-getRootSceneNode()-createChildSceneNode(Ogre:Vector3(-10,11,0);Ogre:SceneNode* node5 =_sce
7、neManager-getRootSceneNode()-createChildSceneNode(Ogre:Vector3(-20,19,0);4.【在主程序中,最后,绑定粒子系统到结点上:】node1-attachObject(partSystem1);node2-attachObject(partSystem2);node3-attachObject(partSystem3);node4-attachObject(partSystem4);node5-attachObject(partSystem5);5. 【编译运行】实验总结:这次实验了解了粒子系统和怎样使用它并且如何创建几个不同的粒子系统,有时候在写入代码的时候,把代码的顺序插入错误,导致不能运行出来,不过多多练习之后就好了