PDA

View Full Version : Particle FX



dballesg
09-15-2005, 01:58 PM
Hello to all,

I want only to point out malfunctions or missing things on the design that I discovered on the dynamic particle FX ( I would post my discoveries as well on the other systems when I finish my tests with them). I am posting the solutions I've found as well.

And, for show my results, I am posting an scene so everyone can see what I am talking about. My discoveries has lead to think on a really good improvements that can help a lot the particle system, and I think they can be implemented before LightWave 9 ships.

All the scenes are really simple systems so everyone can try to reproduce by themselves. Are attached to my post anyhow.

I've been honest even explaining the solutions that I found due to my own erros creating the scenes or mistakes that I didn' notice when I made them. In the search of solutions to every problem presented, I've tried to follow the logic of change ONE parameter and its values ONE at time, when was possible.


However, I've been as clear as I can (english is not my native language) so even a newbie can load the scenes and do his own tests. I know quite well the particle FX, but take out my nerves when you want to do something logic, and works on the complety opposite way. So my way of describe the
settings and that, doesn't mean I don't know how to use it.

1st TEST: TEST_01_EmmitersCollisionInsideProblem.lws

I started with 4 emmiters and four Sphere collisions. Emitters are cloned from Emitter_A. Only different gravities on their Etc panel.

They emit 100 particles per frame and limited to 100 particles, so ALL the particles are emited on the frame -10 and have a live of 310 frames.

The Collisions are cloned as well, but Collision_C and Collision_D have the inside option activated.

You will expect than the emitters sent the particles down and they collide with every Collision under them. Wrong, no particles at all! :( Why? Because when you activated the inside option on the collision object, it traps the particles no matters where they are. And if you have TWO Collisions with inside activated, it is worse, whom is trapping whom? Try deactivating inside on Collision C or D, and you will see ALL the particles goin to the unique Collision that have inside active.

Solution to 1st TEST: TEST_01_EmmitersCollisionInsideSolved.lws

Group every Emitter and Collision on different groups and you have everything working well. It is pointed on the manual when they speak about Groups:

"Group- you can group Dynamic objects with a user-defined name to prevent unwanted interaction".

But about the inside option doesnt said anything about trapping our particles:

"The InSide option causes the collision to occur inside the collision object."

2nd TEST: TEST_02_EmitterCollisionObjectProblem.lws

A scene with several bottle object with as collisions and with the inside option active. Gravity used on emmiters A and B is -1 m/s2 and the C and D emmiters is -9.8 m/s2.

Emitters and Bottles grouped to avoid the problem showed on the 1st TEST. QUESTION: Try to put everything on the Default group and calculate the simulation. What happened? The particles are not trapped as before ;) Strange Uh?

The Collision A and C and D are Object Type. B Object Subdiv.

A and B Bounce mode. C and D Stick mode. The radius level for all of them is 0.

If you look the animation when the particles are inside the bottle, they still keep moving like if they didn't lose the inertia of the movement.


Solution to 2nd TEST: TEST_02_EmitterCollisionObjectSolved.lws

I tried two simple solutions and this are the results:

First I didnt changed the resolution in the FX Browser panel from 100 mm. So I tried with 10 mm and 1 mm. Same results on both three. Look how the particles on Emitters A and B spread out even before

touch the bottle (frame 10). QUESTION: Try resolution 0 mm . I stoped on the first frame after 100878 steps after beign bored nothing moving! :)

Turned off the inside option for Collision A and B. Worked, was my fault, look that the polygons in the bottle are looking inside the bottle. Carefull with that, it you turn off for the C and D ones, they will stop to work. It is due to the facing polygon direction as well. In the manual I couldn't find mention to this :bangwall:

To stop the particles moving, I get the Collision D and started to try different values for Fix Power. Form 0.0001 (less that that is not allowed) up to 1. Finding than 0.025 stoped the particles at frame 55, but quite abruptly.

So I decided for give a try to the Velocity envelope in the Emiter D. I did a key on frame 100 with a value of 0. Particles didnt stop either after 500 frames. For this Fix Power was 0.

Tried another envelope, this time on the Bounce/Bind power. Frame 0, value 0. Frame 100, value 0.

Frame 200, value 400. Don't stop either.

If you look to the Emitter A. This stops exactly when the particles hit the bottle. So I changed the Collision A to stick (changed its inside setting as well) and have a look. WOW particles dancing, so why it didn't worked with the bounce envelope?

So I started to suspect was the gravity in the Etc tab the one causing this.

Due that was difficult to have an eye on four emmiters with four collisions, I decided to do a clear scene with one emmiter and one collision bottle. So welcome to the test number 3!!

3rd TEST: TEST_03_EmitterCollisionObjectProblemB.lws

Two bottles and two emiters face to face. Are the Emiter A and B and Colision A and B.

Solution to 3rd TEST: TEST_03_EmitterCollisionObjectProblemBSolved.lws

With a new scene, I came with a lucky fix. Changed Collision B from Object-Subdiv to Object-Advanced. Particles stop correctly, no more Nutcracker particles ballet!

4th TEST: TEST_04_EmitterCollisionObjectGravity.lws

Still suspecting how the gravity on the Etc tab affect the particles. So changed the gravity on the

Etc tabs to 0 and added two Gravity effects. One grouped in A and the other in B. Gravity A is as

before -1 m/S2, and B, -9.8 m/s2. Reduced their Radius in both to 250 mm. So the emitters were in range.

So the Etc gravity and the Effect works the same. But with the advantage you have a Radius setting, power Setting (and both with envelopes) on the effect.


Solution to 4th TEST:
If I put the second Collision to Object-Subdivide now we have the Swan's lake Ballet. Change as the prior solution to Object-Advanced and it will work well again. Particles stoped.

Looks like was not the gravity, was the Collision mode.

5th TEST: TEST_05_EmitterCollisionObjectInteraction.lws
From the prior test and other scenes I made in the past, I wanted to test how Particle Weight, Particle Size, Force and Viscosity were related. So using the same scene before, I changed BOTH gravities to -9.8 m/s2. In both emitters I upped the Life Time to 600 frames to have much more time to see thee reactions.

Emitters A and B, Particle size was changed to 1 mm (Yes you can put units on the input box of the parameter, LW will convert it to the appropiate 0.001). And activate the Show Size option.

The weight on both emitters was 1.0. No units here? :(

In the interaction tab I left the force to 100 and Viscosity 100. Self Interaction to Crowd.

With Crowd we have particles dancing on the bottle again. In fact do that with all the modes except Drag.

And with Self Interaction, the particles start to spread when they born.

Now with the two systems equal. Change in the Emitter A the Force for example to 200, and have a look. The particles look that they are working well, spreading more in the start. Try now a force of 20 on the same Emitter. Now you can see the dance of the particles is much slower. Logic as well,
they have less force.

Go more down with the force to 0.1. Now the particles almost stop at the end, but not enough.I tried lefting the force to 0.1 and going up with the viscosity. Stopped better but It is not what i am looking for.

But now, change the force to 0.1 on Emitter_B and its visscosity to 200 as well, so we have equal systems again.

And in the emitter A put the Particle Weight at 0.5. Emitter B is stil with a Particle Weight of 1.0.

That show that the Weight help to stabilize the end movement of the particles.

For other tests I made before, I know that changig this THREE parameters help you a lot to made your particles almost stop after the colision, but not suddenly as they would do with a Stick Colision and Fix Power.

By the way , in all this test changing force and viscosity my computer locked on different frames. I

mean didn't updated the particle animation, after a few seconds stoped, it finished and the animation was done. weird!! :(

Change Interaction on emitter A to crowd as well. Now the particles spread down a bit. Why? Its is not supossed than Interaction as the manual said:

"The Self Interaction drop-list determines how particles react to other particles of the same emitter. The Interaction drop-list determines how particles react to other particles from different emitters (within the same group)."


affect DIFFERENT Emitters on the SAME group. Why affect it my Emitter_A when its the only one in the group A. Another mistery of the universe :( Well if you calculated the animation and change the Interaction setting, its affects what you have calculated. So calculate it again and everything is fine.


I post the rest on a second message. I exceed the 10000 character limit to a post :devil:

dballesg
09-15-2005, 02:00 PM
Bottles.lws

With all this experiments I managed to do this scene. In it you can see a bottle droping a particle

system inside another one.

I was trying to reproduce the (in)famous scene of the Lw Content Directory:

Content\Classic Content\Scenes\_Features\ParticleFX2\FXCollisionCu p.lws


When I started this I knew I couldn't do it. But looks like someone in Newtek did it before.

I need that kind of effect for an in house animation we are doing. And I tried other methods, Cloth

FX for example, giving me better results that I will post when I have time, BUT not the visual

effect I was looking for.

And I work on a company, I mean it is not a hobbiest animation or a freelance job.

And please, do not answer Realflow is your solution. Itīs out of the question that we buy that

program.

So here at the end are my suggestions: (Anyone is welcome to add more, but I think must be done with

test scenes so everyone can try by themselves).

This are my Laptop specifications, it is were I made all this tests:

Fujitsu Amilo 1.7Ghz, 1Gb RAM, ATI Mobility Radeon 9700 128 Mb.


IMPROVEMENTS

Emmiter:

.- Needs to draw correctly the shape of the Box, Sphere and Cone Nozzles. I never saw an sphere with

6 perpendicular sides :)

.- The option on the old FX Browser, still affects the system. Centralized them by Particle FX

group, so we can have for example several different resolutions for solving different particle

systems in different groups on the same scene.

.- A way to control the inertia of the particles so you can stabilize the system, with that I mean

stop the unwanted vibrations, if you want the particles slow down until their stop at certain time.

.- Add a Self Interaction and Interaction option of Self Collision. I mean BETWEEN particles, in

that way it would be possible to simulate the filling of objects with Particle FX. I know how

difficult is program a Particle System and I am not expecting a real time solution with this option.

People can have a look to Engeneering Systems that use Grids or parallel computing for REAL

particle, fluis, a dynamics calculations. So it would be an option that will crawls the calculation,

but at least we will have it.


Collision:

.- Needs more primitive shapes of collision, cylinder, cone,etc... because looks like the sphere and

box collisions works much better that if you use an object with the same shape. Are much faster

IMHO. And this primitives avoid the use or REAL objects for particle simulation, when one of thoe

proxy ones can be used.

.- When the inside option is active and is one of the colision primitives, I think it must trapped

the particles, once they are INSIDE the Collision object, I mean partiles coming from outside the

collision will not be trapped UNTIL they are really inside the Collision volume. And I think must be

offered like a advanced inside option. For this I think an Sphere primitive where you can specify

the diameter of a hole on it, would be perfect. Now it can be done using an object modeled ad hoc.

.- Colision Point to Plane, Plane to Point, Edge to Point, Point to Edge, resuming better collision

algorithm (this is implemented in LW 9 right?).

Groups:

.- Ability to delete a group from the scene, as well as rename them, the objects on deleted group

are then sent to the Default group.

.- Allow the Addition of multiple Emitters, Collisions, Winds and Gravity to the same group.

General:

.- Add to the Property sheet in the new Scene editor the Dynamic sections, so multiple emmiters,

collisions, winds or gravity parameters can be modified at the same time.

.- Unify the Gravity on the Etc tab making it equal to the one in the Gravity panel of the Gravity

effect. Confuses the user and it is not animatable.

.- Units that explaint better the relation of parameters as Particles Weight ( How much a particle

weights) 1 Kg, 1ppm, 1 gr , 1oz?

.- Open the SDK about the Particle Section so other system can be added, and made the actual one

controllable by LScript and C. I mean for example made a plugin or LScript that can control the

birth rate for example. Or the particle Size.

.- Include on the SDK the ability to create points and triangles, not only get an existant particle

system, so for example a fluid system that implements the creation of meshes in Layout can be done.

.- I had a strange error on some Particle FX scenes that didn't recorder well the particle.pfx file.

When I was trying to load them again I get a bad version number error.

Thanks to all for read such long post.

Hope as well someone can test the scenes on a MAC. It is because I do not have one yet!

I hope this post open a civilized talk about all the Dynamics System.

My best regards to all.

David Ballesteros