I was thinking also about emitters. At the moment, there is only point and box. (I'm very happy theses are there but I would like more variants)
It could be cool to add sphere, plane, disc and arbitrary shape (a simple mesh).
Sphere could be more realistic than cube on certain simulation (but surely slower, we could define a sphere subdivision for the accuracy of the simulation.)
Planes could be good in lot of situations (Like I was doing for example for "faking" water particles bouncing back on my fountain. I sized my cube emitter so that it was almost flat.)
Disc could be used for an emitter releasing smoke in a crater for example.
Arbitrary shape could be used to simulate an object(mesh) composed of particles, kind of the momy movies (Sand face, or water face). Surely this could hit some CPU but could create some very special effects. The artist would surely have to use a very simple mesh to get a good FPS speed.
Those emitter could be defined as primitives in Irrlicht the we could define theses primitives as particles emitter. (Like we define a mesh as a OCCTREE). So for example the water node could be defined as a disc instead of a plane for an effect like "stargate"...
Other question, In IRREDIT, I wasnt able to use more than one affector. Is this a limitation of the editor or IRRLICHT? For my fountain, I'm using only gravity and I had would like to use the fade out particle affector.
Could we use the fade out affector also to colorize the particles? (From a color to another). The best thing (As I've used in Lightwave particles) are Gradients. We can colorize the particles on the life time, then define a gradient color and alpha. This is excellent for simulating fire and explosions.
Another idea, also for the particle is to generate motion paths for objects meshs (A new type of animator -- particle animator--). It surely would be the hardest part to integrate but would surely pay off. It would look very much like a physic system but would have a "mesh emitter". (an example could be a meteor shower, an army, a flock of birds, etc.). For that that kind of simulation we would have to define a "bounding box or sphere" for the size of the particle for the collision and bounce. Then the motion could be applied to static or animated meshes. Theses motions paths could be "pre-rendered" in certain cases to save some FPS on the engine. When simulating this, it would be also a good idea to implement calculation for particle inter-collision (particles that hit each other)
The current system IRRLICHT have a lots of potential. With theses "addons", this could surely get some more attention on it. With the advent of more and more power from the graphic cards, we could surely do some new and never seen stuff coming out of our demos.
With all theses things implemented, I don't think we would need a physic engine... Or is a physic engine could be applied to particles? (could save some time in the developpement and use a physic engine to do the collision, winds, force of the emission calculation of the particles) Particle motion is all physics related.
I only wish, I could be a professionnal coder. I could have worked myself to add theses extension to the particle system. Someone have the capabilities and some spare time?
