SPARK open-source advanced particle engine

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
Juff
Posts: 18
Joined: Fri Oct 30, 2009 7:53 pm

SPARK open-source advanced particle engine

Post by Juff »

Hi to all,

let me introduce to you my particle engine :

SPARK is a free open-source advanced particle engine written in C++.
The computation and the rendering are totally independant which allows the particle computations not to depend on a rendering system. In that way, SPARK can integrate within any rendering system (either 2D or 3D). This is performed thanks to rendering modules. SPARK has rendering module for OpenGL and SFML and a new one for Irrlicht is released today (developped in collaboration with Darktib).

Why having developped a module for Irrlicht whereas it already has some integrated particle systems ? Because SPARK offers a lot more features and is more scalable than the Irrlicht one.

Basically here are a few things you can do with SPARK :
  • Render particles with points, point sprites, quads or lines
  • Define the orientation of the quad in a very accurate way (not only facing camera)
  • Rotate particles
  • Animate texture and use texture atlas
  • Use 32 bits indices to build up very large particle systems
  • Choose to use VBOs if needed
  • Sort particles
  • Use the inner physics engine (particle vs environment and particle vs particle)
  • have several emitters per systems
  • ...
SPARK particle systems can integrate totally within Irrlicht thanks to the IRRSystem which derives from the Irrlicht SceneNode. So you can use a SPARK particle system in Irrlicht the exact same way as any SceneNode.

Here are a few screenshots taken from some demos :

Image
Image
Image

And you can see a video at this address

By the way, this was my first intrusion into the Irrlicht world and I must say I am really impressed by the ease of use of the engine. It is very easy to set up and get 3D stuff on the screen quickly. However I think there are a few things to improve : the VBO support is still young and will gain a lot with more flexibility. The point sprites are not really useable as the attenuation function are not well set ie you cant get point sprites to fit perfectly in the universe (if you want the formulas to obtain correct integration I can give them to you).

Anyway, hope you ll enjoy the library.

For more information (complete list of features, documentation, tutorials...), to download the library and some demos, check out the website at http://spark.developpez.com

There is also a forum if you need some help or want to discuss about some stuff.

Thanks and tell me what you think about the library and if you have some suggestions for the future releases dont hesitate.
Valmond
Posts: 308
Joined: Thu Apr 12, 2007 3:26 pm

Post by Valmond »

This looks extremely impressive!

What hardware will this run on?
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

zlib license. beautiful professional job. looks like it could give a good competition to http://fxpression.com/Download.html . What's not to like? Great job, I'll be sure to include this lib in any current and future project using Irrlicht.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

That looks really impressive. Good job. Please let us know if you need some extension to the capabilities Irrlicht already offers - in order to integrate your system easier, or to get better render quality/performance.
Viz_Fuerte
Posts: 91
Joined: Sun Oct 19, 2008 5:29 pm
Location: Valencia (Spain)
Contact:

Post by Viz_Fuerte »

:shock: ohhhhhhh, is beautiful!!!
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

very very impressive
stefbuet
Competition winner
Posts: 495
Joined: Sun Dec 09, 2007 4:13 pm
Location: france

Post by stefbuet »

And tutorials are in French too :P
Awesone work! nice job!
andres
Competition winner
Posts: 78
Joined: Tue Jul 08, 2008 5:18 pm
Location: Guarapuava/Brazil
Contact:

Post by andres »

wooow
impressive!
Prof. Andres Jessé Porfirio
Federal Technological University of Parana (UTFPR)
www.andresjesse.com
http://irrrpgbuilder.sourceforge.net

Image
shadowslair
Posts: 758
Joined: Mon Mar 31, 2008 3:32 pm
Location: Bulgaria

Post by shadowslair »

Beautiful indeed. Unfortunately it`s for OpenGL only. :?
"Although we walk on the ground and step in the mud... our dreams and endeavors reach the immense skies..."
Juff
Posts: 18
Joined: Fri Oct 30, 2009 7:53 pm

Post by Juff »

Thanks for all the comments :)
shadowslair wrote:Unfortunately it`s for OpenGL only.
No its not for OpenGL only. If you use the Irrlicht renderers it can be rendered either with OpenGL or Direct3D as the rendering calls are made with Irrlicht. However there is also a rendering module in SPARK to use directly with native OpenGL (without Irrlicht).
hybrid wrote:That looks really impressive. Good job. Please let us know if you need some extension to the capabilities Irrlicht already offers - in order to integrate your system easier, or to get better render quality/performance.
Thanks. Everything is ok regarding integration. Of course more flexibility in the vertex format and/or in the VBO settings would allow me to optimize the rendering.

As I said in the first post, point attenuation in Irrlicht seems a bit arbitrary set. So you cannot really simulate quads facing camera using point sprites atm.
I have implemented a correct attenuation function in the OpenGL renderer that allows to pass from point sprite to quads with no difference at all which means a point sprite of size S will have the exact same render as a quad with size S. You can find it in the spark source code in GLExtHandler.cpp in the method enablePointParameterGLExt if you re interested. This formula can be used for Direct3D as well with very little effort.
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Post by Nadro »

It looks great :)
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
3DModelerMan
Posts: 1691
Joined: Sun May 18, 2008 9:42 pm

Post by 3DModelerMan »

Maybe one of the devs can put it in the next release...
That would be illogical captain...

My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
ProjectIRR
Posts: 21
Joined: Mon Oct 26, 2009 3:21 am

Post by ProjectIRR »

It looks spectacular. I do have a question though, you say it now has a rendering modulal for Irrlicht, not just OpenGL. Does this mean it just runs with whatever rendered you've chosen? (Can you choose direct X and it works through Irrlicht to render?)

I haven't tested it, but it looks like it would be a great addition to the engine :)

*Edit* After looking at the demos I see it does run with Direct X through Irrlicht :)

I was wondering though, after running the Irrlicht fire demo with and without direct x, does direct x look a little better, or is it me paranoid over picking the right solution?
Image
Juff
Posts: 18
Joined: Fri Oct 30, 2009 7:53 pm

Post by Juff »

That s a bug I have seen on my PC at work. But I thought it was due to my driver not being up to date. Actually only one triangle out of 2 is drawn per particle in OpenGL, that s why the fire looks bad. This is even more noticeable on the basic demo. I think I know from where it is from.

I guess you own a ATI card ? Do you have the latest drivers ?

Do you mind if tomorrow I post a new set of demos so you can test them on your PC to check if the bug is gone ?
Halifax
Posts: 1424
Joined: Sun Apr 29, 2007 10:40 pm
Location: $9D95

Post by Halifax »

Hey Juff, glad to see you added an Irrlicht rendering module and the zlib license. Great job!
TheQuestion = 2B || !2B
Post Reply