This week we went through the process and methods of creating rain using particle dynamics – in particular to compare world scale and 1/10th scale and the effect this has on settings and final look.
I will list the steps for the rain creation at the bottom of this post but firstly here is the play blast to show the original simulation at real world scale on the left and the 1/10th scale version on the right –
I managed to get them looking the same (so far as I could detect) but these are the things I found that required different values at the small scale –
• Initially, I found that the lifespan for the particles could be significantly less as the distance falling is reduced. (I will come back to this)
• The magnitude of gravity will need a lower setting to get the same result. With the magnitude at the 980 as per the 1:1, the rain speed was quite violent. Reducing this to 98 seemed to feel about right. But, now with the lower gravity magnitude, I found that I needed to increase the lifespan so the rain would make it all the way down to the ground plane.
• The tail size on the streaks needs a lower setting.
• I seemed to need a greater resiliance setting on the geoConnector for the ground plane to stop the particles falling through it?
These were the main differences I noted.
Now, here is a summary of the steps required for this simulation –
• Create particles using a plane as a surface emitter. Set the speed to zero so they stick -then you can use a gravity field to control the fall.
• Create a gravity field, make sure the particles and the gravity field are have a dynamic relationship. Experiment with the magnitude for fall speed. Attenuation should generally be set to zero as gravity does not have a ‘falloff’ as such.
• Change the lifespan of the particles to constant, then adjust the life until they fall just past the ground plane that they will eventually collide with.
• Set the render type to streak to get a look closer to real rain, then adjust the tail fade and tail size to suit.
• To randomize the fall pattern, we use a noise node mapped to the texture rate the animate this noise texture using the expression noise1.time = time*10;
• Then we create a collision between the rain particles and the ground plane and adjust the resiliance and friction attributes on the geoConnector to get the interaction right.
• To get a secondary splash, we use the particle collision event editor, which emits new particles on collision –
To get to all the ‘frequently used’ controls more effectively, we build a rain controller using a simple locator, adding custom attributes for rate, gravity, turbulance, and the 3 scale axis for the emitting plane.
The connection editor was used to connect these custom attributes to applicable nodes on the emitter, gravity field and plane geometry.
Now we have quick and easy access to the most used controls.