Addons to particles that could be interesting...

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Addons to particles that could be interesting...

Post by christianclavet »

I've played a lot on particles today in IRREdit to make my fountain (had lot of fun too :) )and if someone could have time to implement theses (only a proposition :wink: )

- Particle blur: Since most particles move fast, putting a kind of shader blur effect on them could increase realism a lot. (Explosions, Water, sand storm, etc...)

- Particle bounce. This addons could have 2 options. First option is to calculate in real-time the particle impact until the "dead time". And another could try to pre-calculate the impact (So the second option will not be interactive). Adding this also will greatly improve realism. We could define a simple plane or box for the collision object (visible flag deactivated afterward) (Explosion with fragments hitting the walls or environnement, waterfalls, etc.)

- Wind Effector. This addon could take a node with a vector and strength of the wind that could affect the particle motion. Having 2 options on this could be great (Interactive (low particle simulation) and non-interactive (pre-rendered motion for lots of particles)

- Alpha Start and Alpha end. Animating the Alpha value of the particle could be great for, having a particle having, gravity, wind, etc then at the dead time the particle could be completely dissoved. This could be used for a kind of realistic fireball effect (To fade out the flame at the end in the background). The value could be used on the "live" value already defined. (So we could do a fade at the end or the beginning depending on the need)
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

how about soft particles?
paper about soft particles: http://developer.download.nvidia.com/SD ... les_hi.pdf

but i think it only supported by dx10... :cry:
is there's something like 'fake soft particles' using some different algorithm but the result is very near to the one by dx10?
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

I've done a quick look over that documentation. This technique seem a bit expensive for the GPU :( (They got less than 30 fps on a GeForce 8800 :? because they used particles to do a kind of volumetric fog)

When rendering a fog, they use the particle to render it (no linear gradient) but a smooth one created by the particles.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Oh, there is a fade out affector already. Also the wind affector can be done (maybe with gravity, but at least with the new attraction affector).
Particle bounce should be possible to implement. You'd have to set the planes somehow and do quick tests for collision and some simple reflection. Anyone willing to do it?
I'm not sure if I get the blur thing. Is this dynamically changing, and what is the difference to transparent particles?
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

i think blur can be done by using shader (motion blur). But not with the current dizzy-view blur. The better one is called object blur or something like that.

By the way, is it possible to make particles to cast shadow?
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Ok. For the fade affector. I have to use the surface with an ADD to properly have the effect. I forgot about this.

If theses could be implemented, we could have an incredible particle system (could make particles like in FEAR :D )
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

And, how about normal mapping for particles?

Image
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

The particel system currently uses S3DVertex for drawing. It might be possible to relax this requirement. Then, bump mapping particles would be possible.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

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? :wink:
Dark_Kilauea
Posts: 368
Joined: Tue Aug 21, 2007 1:43 am
Location: The Middle of Nowhere

Post by Dark_Kilauea »

The latest svn version of irrlicht includes:
Ring, Sphere, Cylinder, and Mesh emitters plus attraction and rotation affectors.

But yes, there is a lot of potential, and a lot of other emitters and affectors that could be implemented :)
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Wow!!!! :D Great! I can hardly wait for the next official version! That's great!
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

Dark_Kilauea wrote:The latest svn version of irrlicht includes:
Ring, Sphere, Cylinder, and Mesh emitters plus attraction and rotation affectors.

But yes, there is a lot of potential, and a lot of other emitters and affectors that could be implemented :)
Cool, I just knew this.
Padreigh
Posts: 1
Joined: Tue Sep 11, 2007 8:27 am
Location: Germany, NRW, Bielefeld

Way to change particelsize

Post by Padreigh »

How about a way to randomize Particle-Size between "from" and "to"?

I modified the 08.tutorial, added some smoke to the fire and it looked booring. I missed those little sparks coming out of a real fire, so I added them too, but to get it cozy I had to add 3 sizes of sparks.
To add only 1 type wich size varies between (2.f,2.f) and (5.f,5.f) just like the colour varies would have been nicer. I think this feature may come handy not only in my situation, but as size isn't part of SParticle this might need a bigger rework. If this wouldnt work for performant display of particles, forget my plea :)
Padreigh
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Yeah, there was already a size affector sent out to the patch page. I guess it will need some code fixing for the latest changes, but will make it eventually into the core.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Hi, Found a picture of another engine, that show Particle motion blur.

Image

If that kind of motion blur could be applied to particles, it could greatly improve realism in the movement. (Water, fire, rain, etc...)

On the second screen we see an interface to set the particles. But the interesting part to show, is the gradients used there for the color attributed in the particles. (Almost like the ones we use in Lightwave)
Image
Post Reply