AdvancedParticleSystem with IrrEdit plugin
AdvancedParticleSystem with IrrEdit plugin
I spent the last week creating an "Advanced Particle System Node" for Irrlicht. It's based on the original Irrlicht particle system node, but this node has some drawbacks:
- bad (de)serialization
- no cloning
I have written a node and plugin that adresses both of these. With the plugin you have some sort of a basic particle system editor in IrrEdit, and you can clone those nodes.
It's available for download at http://bulletbyte.de/products.php?sub=irr&show=aps.
If you want to see it in action you can grab the latest version of my IrrOde wrapper and try the IrrOdeCar demo (you know ... the demo with the misleading name ). Just take the helicopter, the plane or the tank and shoot around and you'll see cloned particle systems.
Note: if you want to recompile the IrrOdeCar demo you also have to grab the advanced particle system. It's not part of IrrOde.[/list]
- bad (de)serialization
- no cloning
I have written a node and plugin that adresses both of these. With the plugin you have some sort of a basic particle system editor in IrrEdit, and you can clone those nodes.
It's available for download at http://bulletbyte.de/products.php?sub=irr&show=aps.
If you want to see it in action you can grab the latest version of my IrrOde wrapper and try the IrrOdeCar demo (you know ... the demo with the misleading name ). Just take the helicopter, the plane or the tank and shoot around and you'll see cloned particle systems.
Note: if you want to recompile the IrrOdeCar demo you also have to grab the advanced particle system. It's not part of IrrOde.[/list]
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Just uploaded a new version: you can now (de)activate emission of particles and get the number of particles currently in.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
-
- Posts: 758
- Joined: Mon Mar 31, 2008 3:32 pm
- Location: Bulgaria
Nice one. Will take a look at the code whan have some time, I know its just a quick test, but would be better if the demo was just a little bit more interactive- switch emmiters in realtime, draw fps, draw number of particles (you did this already, but I ran the first version), being able to increase/decrease the number, and please Esc-to-quit. One copy-paste of a event receiver and adding those will be 15 minutes, but will improve the "experience" a lot.
"Although we walk on the ground and step in the mud... our dreams and endeavors reach the immense skies..."
OK, I modfied the demo. Now no particles are emitted initially, but there are a lot of buttons on the left that let you choose the emitter you want, and there are buttons to clone the node, remove the clone and deactivate the original (but the isActive method will return "true" as long as there are particles). Some info text is also there.
New version can be downloaded from the URL in the initial post.
Btw: I'm having problems with getting any particle emitter but the point one working in IrrEdit. Anyone got an idea?
New version can be downloaded from the URL in the initial post.
Btw: I'm having problems with getting any particle emitter but the point one working in IrrEdit. Anyone got an idea?
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
I finally got the IrrEdit plugin with the advanced particle system working, and I added a new emitter: the "explosion emitter".
Take a look at the (updated) IrrOdeCar demo of my IrrOde wrapper. Now there are explosions whenever you shoot something. I like the changes (flew around with the airplane about an hour yesterday and did nothing but shoot at all dynamic objects in the scene ).
Take a look at the (updated) IrrOdeCar demo of my IrrOde wrapper. Now there are explosions whenever you shoot something. I like the changes (flew around with the airplane about an hour yesterday and did nothing but shoot at all dynamic objects in the scene ).
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
How can I use this with Irrlicht 1.7.2?
When I compile my project and the CAdvancedParticleSystem.h is included the compiler can't find these files:
Did I forget something?
When I compile my project and the CAdvancedParticleSystem.h is included the compiler can't find these files:
Code: Select all
#include <CParticleSystemSceneNode.h>
#include <CAttributes.h>
#include "os.h"
#include <CParticleAnimatedMeshSceneNodeEmitter.h>
#include <CParticleCylinderEmitter.h>
#include <CParticleSphereEmitter.h>
#include <CParticlePointEmitter.h>
#include <CParticleMeshEmitter.h>
#include <CParticleRingEmitter.h>
#include <CParticleBoxEmitter.h>
#include <CParticleAttractionAffector.h>
#include <CParticleRotationAffector.h>
#include <CParticleFadeOutAffector.h>
#include <CParticleGravityAffector.h>
#include <CParticleScaleAffector.h>
-
- Posts: 758
- Joined: Mon Mar 31, 2008 3:32 pm
- Location: Bulgaria
cookie wrote:Did I forget something?
Um, probably to link them properly?!
Try some of these:
1) add them to the irrlicht/include folder (I wouldn`t)
2) add them to separate folder and add it to the include directories` list
3) add them to your project and replace the < > with ""
4) some other way here
"Although we walk on the ground and step in the mud... our dreams and endeavors reach the immense skies..."
Hi,
the files do exist, but that are Irrlicht files. You have to search the Irrlicht directory for those files, add them to your project and also include the folder in the header search path. Unfortunately this is quite a hack, but it was the only way I found to get the system working (and it works quite good for me).
the files do exist, but that are Irrlicht files. You have to search the Irrlicht directory for those files, add them to your project and also include the folder in the header search path. Unfortunately this is quite a hack, but it was the only way I found to get the system working (and it works quite good for me).
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
You can find those files in the source/Irrlicht folder. These files are normally hidden from Irrlicht users (as you do normally not need them).
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Ah, thank you.
But now I get many Errors like this:
I added the sourcecode path of Irrlicht to my include-directory-list.
But now I get many Errors like this:
Code: Select all
bla|549|undefined reference to `irr::scene::CParticleAnimatedMeshSceneNodeEmitter::CParticleAnimatedMeshSceneNodeEmitter(irr::scene::IAnimatedMeshSceneNode*, bool, irr::core::vector3d<float> const&, float, int, bool, unsigned int, unsigned int, irr::video::SColor const&, irr::video::SColor const&, unsigned int, unsigned int, int, irr::core::dimension2d<float> const&, irr::core::dimension2d<float> const&)'|
Hmm ... that's strange. It got it compiled with Irrlicht 1.7.2 without any problems.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Re: AdvancedParticleSystem with IrrEdit plugin
I have uploaded an update for the "AdvanceParticleSystem" scenenode. It fixes an issue I've been struggling with for quite some time: in my main project (the IrrOdeCar demo of the IrrOde wrapper) the particle systems that simulate the exhaust of the cars looked strange:
This comes from the fact that the simulation is stepped, there are 60 frames per second. Between these steps the position is not updated, so the smoke is generated in these positions between. As a solution I have added two ways to solve this:
- interpolated: the velocity of the last position change is recorded and if the position is not changed an interpolation is done. There is an attribute threshold that defines the maximum interpolation time
- stepped: depending on the time the position is not changed and the velocity of the last change the new particles are emitted on a line from the current position in the direction of the new MoveDirection attribute
Here is an image of how it looks with the second option:
This comes from the fact that the simulation is stepped, there are 60 frames per second. Between these steps the position is not updated, so the smoke is generated in these positions between. As a solution I have added two ways to solve this:
- interpolated: the velocity of the last position change is recorded and if the position is not changed an interpolation is done. There is an attribute threshold that defines the maximum interpolation time
- stepped: depending on the time the position is not changed and the velocity of the last change the new particles are emitted on a line from the current position in the direction of the new MoveDirection attribute
Here is an image of how it looks with the second option:
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Re: AdvancedParticleSystem with IrrEdit plugin
Maybe I'm missing something, but the second pic looks just as bad as the first?