Page 1 of 3

Particle Engine

Posted: Thu Feb 24, 2011 11:34 pm
by sudi
I was tired of the stupid particles irrlicht has to offer and i really didn't like the way the particle wasn't customiseable at all. So i wrote one that actually is. It supports 3 different particle drawers from stock. a billboard drawer, a trail drawer and a oriented drawer.
Unfortunatly i didn't have the time and effort to create all animators and emitters irrlicht provides. but it should be easy to adopt.

And Explosion showing all effects in action is provided in the CMain.h/cpp
Download
christianclavet wrote:Hi, @Sudi. I'll host your file on my web site if the link dies then this should help maintain the availability. I'll will try to follow your updates and update the link as it's change.

(From post with compiled example, assets and MSVC project, old source.)
http://www.clavet.org/files/download/Sudi_PARTICLES.zip 4.97Mb

(New updated source only)
http://www.clavet.org/files/download/Pa ... ne.tar.bz2 12Kb
These images are video links.
Image Image

Big screenshot:
Image

Uploaded with ImageShack.us

Posted: Fri Feb 25, 2011 8:55 am
by serengeor
Great, If i will need particle effects in my game, this will be very useful, tough I'm far from this stage right now :)

Posted: Fri Feb 25, 2011 6:06 pm
by christianclavet
Wow! Nice work Sudi! That explosion look really nice! I would really like to integrate something like this in IRB. How have you dealed with the parts that bounced off the floor?

I really like the way you load the animation from the image (a single image with all the frames tiled on it.) :D

EDIT:
I've made a MSVC Project for it (MSVC 2008 Express) here with a Win32 executable build upon Irrlicht 1.7.2 (all dependencies included in the archive so it compile out of the box)

I also took a little time, to fix some compiler warnings and position the camera inside the room.

If you want to check a windows version download this one:
http://www.clavet.org/files/download/Sudi_PARTICLES.zip 4,96Mb

Posted: Sat Feb 26, 2011 3:16 pm
by Max_Eden
Editor, dude! If you did it, everybody would like it.
E D I T O R, remember!

Posted: Sun Feb 27, 2011 4:11 pm
by grumpymonkey
that looks awesome, it reminds me of tf2 :P thanks for this!

Posted: Sun Feb 27, 2011 5:23 pm
by bitplane
These explosions look great, nice work :)

Posted: Sun Feb 27, 2011 7:10 pm
by cobra
Good work Sudi.

This was an excellent idea. :)

Posted: Tue Mar 01, 2011 3:26 pm
by sudi
Updated the system a little bit with emitter regions so you don't have to recode a emitter if you just want to change the area of emitting. As well added Interfaces for all classes so it could be added to irrlicht with no hassle.
As well added some options to the trail particle drawer so it can be used for a lot of stuff.

Link is in the first post!

Posted: Tue Mar 01, 2011 3:29 pm
by serengeor
Sudi wrote:Updated the system a little bit with emitter regions so you don't have to recode a emitter if you just want to change the area of emitting. As well added Interfaces for all classes so it could be added to irrlicht with no hassle.
As well added some options to the trail particle drawer so it can be used for a lot of stuff.

Here the Download
I as well updated the link in the first post.
Great to see you haven't dropped development of this after first release, irrlicht needs a better particle system, but of course its not a top priority right now.

Keep working on it :wink:

Posted: Wed Mar 02, 2011 8:00 am
by Brainsaw
Those explosions really look great, would be a nice addition to Irrlicht. Are you planning to add some proper (de)serialization and a clone method (or did I simply miss those?)? Those are the things I'm missing from the original particle system (and that's why I created my "AdvancesParticleSystem" (http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=40509). I am using IrrEdit for as much as possible, so all my projectiles are in the scene files as templates and those templates are simply cloned when someone shoots, so it's (at least for me) important to have a clone method.

Posted: Thu Mar 03, 2011 3:06 pm
by seongnam
Sudi wrote:Updated the system a little bit with emitter regions so you don't have to recode a emitter if you just want to change the area of emitting. As well added Interfaces for all classes so it could be added to irrlicht with no hassle.
As well added some options to the trail particle drawer so it can be used for a lot of stuff.

Here the Download
I as well updated the link in the first post.
I have downloaded the file from the link and the "IParticleEmitter.h" in the Irrlicht directory conflicts with IRR 1.80 beta source because it already has the same file name.
then, my question is that :
is that an update of the original IRR header file or just your own...?
I am betting to second one... then I just need to change the header file name and class name to integrate it inside IRR 1.80 source directory...
________
THREESOME BLONDE

Posted: Thu Mar 03, 2011 8:19 pm
by seongnam
It is working with only changing the Header file and class...
furthermore, changing some class names to eliminate "particle" name space which is nested in "scene" name space.

I may be in a little trouble to integrate your new version later by changing it.
________
Kitchen Measures

Posted: Fri Mar 04, 2011 1:59 am
by sudi
i introduced the new namespace on purpose. first to not clash with the original classes and second bc a particle emitter/emitter region/drawer and particle has actually parent relationship to the particle engine and not the scene.

Posted: Sat Mar 05, 2011 6:52 pm
by christianclavet
Wow! You added a new example in the demo! Nice Sudi!

It look like all of the vertices of the dwarf are used to initiate an explosion!
Image

Is there a way it can follow the vertices while the mesh is moving? (I'm thinking about "The Mummy" sand effect here.. :D

Re: Particle Engine

Posted: Thu Sep 29, 2011 3:16 pm
by Abraxas)
If I understand the source correctly (and I'm an engineer not a programmer :/ ) after creating the pointers with "new" they get destroyed automatically by the system? no need to keep track of all the effects running?

I really like how well this is implemented into irr, which lacks a good particle system. I'm in the process of writing some middle level code which I'll release when I'm done.

Can I use this code in a commercial release?

Thanks.