Simulate Realistic Water in 3ds max using Flex

A tutorial to simulate realistic water within 3ds max by making use of Flex modifier with a tip to optimize the effect for better viewport performance.

In this tutorial, I am going to show you how to simulate a realistic looking water movement in 3ds max. People used Reactor engine of the 3ds max to create water and other dynamic simulations but the Reactor has been removed since version 2012. The new Massfx engine doesn’t have the functionality to simulate water.

Don’t worry, you can still simulate water with realistic ripples using Flex modifier. Here’s the preview of what we are going to create.

Let’s learn how to do that.


Scene setup

Here, I have a Plane (50 x 50 segs.) with a rock geometry passing through it.


Adding Flex modifier

Select the plane and apply Flex modifier from the modifier list. Under the Parameters of the Flex modifier, put the Strength and the Sway value to 0.1.

Step 3

Creating deflector object

Go to Create > Spacewarps > Deflectors and create a UDeflector. Udeflector is an object-based deflector so that we can easily make geometries to be served as a deflector.
With the Udeflector selected, go to Modify panel and under Basic Parameters rollout pick the rock geometry as deflector using Pick Object button.

Step 4

Adding deflector to Flex modifier

Now, the rock geometry is ready to use. Select the Plane object, go to modify panel then click on Add button (Forces and Deflectors rollout) and pick the udeflector to add it in the Deflectors listbox.

Step 5

Adjusting the vertex weight

Go to flex modifier’s Weights & Springs sub-object level, grab all the vertices of the plane and under Weights and Painting rollout, set the Vertex Weight value to 1.0. More is the weight, more is the rigidity of the vertices so we are using 1 percent of the total value.

Note: Values may vary depending upon the effect you want. You can tweak the values anytime to get the desired effect.

Step 6

Simulating the Softbody

Now, click on Create Simple SoftBody button (Simple SoftBodies rollout) to start the simulation and check the result after simulation by scrubbing the time slider. Don’t worry about some inter-penetrated areas of the water surface, we will fix them later.

Step 7

Creating the Cache file

Flex modifier generally takes down the viewport performance so, in order to fasten the process, we can use Point Cache modifier and save all the vertex position data as xml file.
Select the Plane then go to Modify panel and apply a Point Cache modifier to it. Under Parameters rollout, click on New… button to bring up Save Cache dialog and save your cache file to a desired directory.

Step 8

Recording the vertex animation

Now, under the Record rollout, specify the start and the end frame and click on Record button to record the vertex animation of the plane. It takes few seconds depending upon the complexity of the effect.
Turn off the Flex modifier after recording and play the animation to check the performance. You will notice that the animation is playing without lagging anymore.

Step 9

Point Cache Strength value

If you want to increase or decrease the intensity of the effect, you can do it by adjusting the Strength value under Point Cache’s Playback options without altering the Flex values.
Decreasing the Strength value a bit can treat those inter-penetrated areas better. You can also use Relax modifier to get rid of them.

You can experiment with the effect by adding particles to it to make it look more realistic. I hope you enjoyed this tutorial and learned something new from it. Stay tuned for more tutorials. Thanks.