粒子系统包括:发射器,粒子,影响器。发射器每秒产生一定数量的粒子,然后影响器改变这些粒子的行为产生特效。
每个粒子具有几个参数:生存时间,方向,速度。。。等等,影响器通过改变这些参数来产生不同的特效。
关键是编写.particle文件,目录:F:\OgreSDK_vc9_v1-7-2\media\particle
例子:
particle_system firework
{
material Examples/Smoke
particle_width 10
particle_height 10
quota 5000
billboard_type point
emitter Point
{
emission_rate 100
direction 0 1 0
velocity 50
angle 360
duration 0.1
repeat_delay 1
colour_range_start 0 0 0
colour_range_end 1 1 1
}
}
代码:
1 // 粒子系统
2 Ogre::ParticleSystem* ps = sceneMgr_->createParticleSystem("smoke", "mysmoke1");
3 sinBadNode_->attachObject(ps);
4
5 Ogre::ParticleSystem* ps1 = sceneMgr_->createParticleSystem("firework1", "firework");
6 Ogre::ParticleSystem* ps2 = sceneMgr_->createParticleSystem("firework2", "firework");
7 Ogre::ParticleSystem* ps3 = sceneMgr_->createParticleSystem("firework3", "firework");
8 Ogre::ParticleSystem* ps4 = sceneMgr_->createParticleSystem("firework4", "firework");
9 Ogre::ParticleSystem* ps5 = sceneMgr_->createParticleSystem("firework5", "firework");
10
11 Ogre::SceneNode* node1 = sceneMgr_->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(0, 10, 0));
12 Ogre::SceneNode* node2 = sceneMgr_->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(10, 11, 0));
13 Ogre::SceneNode* node3 = sceneMgr_->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(20, 9, 0));
14 Ogre::SceneNode* node4 = sceneMgr_->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(-10, 11, 0));
15 Ogre::SceneNode* node5 = sceneMgr_->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(-20, 19, 0));
16
17 node1->attachObject(ps1);
18 node1->attachObject(ps2);
19 node1->attachObject(ps3);
20 node1->attachObject(ps4);
21 node1->attachObject(ps5);
22 //
ok,ogre基础教程完结。