Tutorial – Water Dynamics

tutorial

waterdynamics_part1

I finally had the time to create this tutorial about water dynamics and caustics in 3d studio max and vray. I divided this into two parts, part one deals with “reactor” and how to achieve effect of ball dropping into water. Part 2 is all about caustics. Here we go:

1. Go to “Customize – Units” and make sure your units are set as the above picture, sometimes the reactor will not work well with units like feet and inches, so I use generic units a lot when making this kind of stuff.
waterdynamics_tut_fig01

2. Make a plane (see thumbnail):
waterdynamics_tut_fig02

Length = 1060 (60 segments)
Width = 430 (40 segments)

3. Now create pool walls and floor using boxes, each wall should be a seperate box and make sure they don’t overlap, there should be a small gap between them. Reactor doesn’t like intersections! I applied sub-object material to the walls to get the tiles on the inside (it is one object).
waterdynamics_tut_fig04
waterdynamics_tut_fig03

4. Go to “Create tab – Space Warps – Reactor – Water”, click and drag in top viewport to create water plane modifier. Make it similar size as your plane from step 2.
waterdynamics_tut_fig05

5. Position the water modifier on top of your plane from step 2. Click on “Bind to Space Warp” from top toolbar (see image). Click and drag from plane to water modifier. This will create a bind, and reactor animation will automatically transfer to your plane later.
waterdynamics_tut_fig06

6. Create a sphere.
waterdynamics_tut_fig07

7. To activate reactor toolbar, right click on empty space on your top toolbar menu and select “reactor”, this will open a new toolbar with many icons. Now, select first icon and click in the middle of your scene, this will place the RBCollection object into your scene, the location of this object is not important.
waterdynamics_tut_fig08

8. Select the RBCollection object and go to “modify” tab, click on “Pick” or “Add” and pick the pool walls, floor, and a sphere. Do not touch the water plane.
waterdynamics_tut_fig09

9. Almost there!
Now we need to assign mass to sphere so when it hits the water modifier will make waves.

Select the sphere. Go to “Utilities – Reactor – Properties”. Make Mass 100, and make sure “Bounding Sphere” is checked and “Unyielding” is unchecked, just like the above image:

In the “Preview & Animation” tab, click “Create Animation”. This is it!
3D Studio Max will take all the real-world physics and calculate the animation for you.

IMPORTANT: make sure your time frame is set to 0 on your main timeline on the bottom of the screen, before you click on create animation, otherwise, max will create keys that don’t start at 0. Do that for everytime you click on “Create Animation”.

waterdynamics_tut_fig10

10. If you followed all the step then you should get the wave effect on the surface of your plane, at this step, it is OK to hide the water modifier and just leave your original plane.

11. I had to increase the Mass of the ball in order to get the illusion half-sinking / floating. Don’t forget that you must click “Create Animation” everytime you make any change to Mass or any other reactor properties.
waterdynamics_tut_fig12

11b. Also to make waves higher, you can increase the strength of the water modifier.
waterdynamics_tut_fig11

12. Now to make the ball move more across the surface of water, I added a wind modifier.

From reactor toolbar select an icon that looks like a chicken with an arrow and click somewhere in your scene to add it. Orient it so it is pointing towards the ball. Set wind speed to 15,000 in the modify tab.

Go to Reactor again and click on “Create Animation” once more.

waterdynamics_tut_fig13

13. The ball should now move toward the edge of the pool and hit a wall.
waterdynamics_tut_fig14

And thats how to make waves by dropping a ball into the pool!

Now you are ready to for Part 2 (caustics).
-Art

7 Responses to “Tutorial – Water Dynamics”

  1. richard Says:

    awesome!

  2. Natalia Says:

    awesome, awesome, awesome!!!

    natural water! thanks a lot for your great tutorial!

  3. Uri Says:

    Hi. Thax for the tutorial. I had already watched something similar on video, so I was trying to make my own animation using all of this. BUT I just encountered a problem and I can’t figure out what did I do (or didn’t do) wrong. Anyways, I do exactly what you explain here, my pool walls and the water plain, and reactor water plain are of different size though. But every other step is the same. The Problem is when i click the create animation button on reactor the ball just goes down a little bit and stays in the “air”, its doesn’t go down all the way to the pool, I even tried changing the mass a LOT (1000 kg) and i keep getting the same result.

    I checked on use unbounding sphere and unchecked unyielding.

    What could be the problem. Pleas help

    Thanks

  4. Uri Says:

    BTW, I’m working with 3ds max 8

  5. artmak Says:

    Hi Uri, sounds like you have a problem with reactor world units, I will post the parameters this weekend.

  6. artmak Says:

    Uri,

    I think the problem is with your Col. Tolerance number.

    Try this:

    1. Reset your max units to generic (Customize -> Units Setup).

    2. Make your water plane size matches reactor-water object size. (it might help)

    3. Input this parameters in your Reactor Havok World window:

    Gravity X= 0, Y= 0, Z= -390
    World Scale 1m= 39
    Col. Tolerance = 3.97 <———————

    4. Make sure sphere is set to “bounding sphere”, and make large mass amount (I used 7000 for mass, friction 0.3, elasticity 0.3).

    Hope this helps!

  7. tarran Says:

    Great tutorial!

    Thanks a lot!

Leave a Reply

Spam Protection by WP-SpamFree

Powered by WordPress | Theme by ARTMAKEntries RSS Comments RSS