|
SIMPLE WATER SURFACE by Pål
Vågsæther Karlsen
One of the few things that make 3D
graphics look fake, is that one of the
goals of the designer is to make it look
as real as possible. When he uses 3D
rendering programs, he tries to recreate
an environment that most people already
has first-hand experience with. Organic
shapes and objects often look unrealistic,
and that is where the software has been
catching up the latest years.
For creating humans and the like, you
have metaballs. Plants and trees can be
created with fractal programs, and
atmospheric effects, such as rain or fog,
has been implemented in most 3D packages.
But the one thing that is causing trouble
is how to create water. Most solutions
imply using ray tracing and ripple/wave
effects. But 3D Studio doesn't have RT, so
you'll have to find another way.
Ok..one of the obstacles is how MAX
creates reflections. Basically, it renders
various images that are mapped onto the
object, thus creating reflection. This is
both good and bad. Good, because it is
faster than RT, and bad because it isn't
that accurate. You have two different
kinds of reflection; flat and non-flat.
The flat is for mirrors and the like,
while non-flat is for rounded objects,
such as spheres. So, for a water-surface,
which do I use? The flat reflection looks
good if you're just out to have a nice
calm pond. But once you want ripples and
waves, you'll need something else. The
non-flat reflection (called
Reflect/Refract in MAX) can do this to
a certain degree. A non-flat reflection on
a flat surface will look bad; it will be
terribly blurred and won't show much. So
you'll need either a space-warp to create
ripples or waves, or you'll need a bump
map. Here is a quick walk-through on how
to create simple water surface with the
standard maps in the 3D Studio MAX
materials editor, without using ripplse/wave
effects. This is a way of doing it with a
material. Bear in mind that this is not an
accurate way of creating water, and will
probably not look good in all scenes.
After experimenting with it, it seems that
you'll have the bet result when using it
in a scene consisting of a landscape, such
as a pond.
Step 1. The first thing
you need to do is to create the environmet
you want the water in. This can for
instance be a pond or a river. The best
way to do this is to create a landscape
using the Displace modifier (this
is not the same as displacement map in the
Space Warp menu). In this
landscape, wherever you've decided tha
water to be, create a box. This box serves
as the water surface, so you'll have to
position it so that the top of it is the
surface. Here is a simple landscape with
the water surface positioned:
The gray area is the water surface;
a simple box with only 1 step in each
direction. I merged two screenshots (one
shaded and one wireframe) so you can
easily see the box used as a surface.
Step 2 a) Now, the next
thing you need to create is the material.
Note that this method of creating water
only deals with a water-material,
not a mesh. First of all, adjust the
Ambient, Diffuse and
Specular so that the water obtains the
shine and colour you want. For my water, I
use Ambient (0,0,0), Diffuse (57,57,57)
and Specular (255,255,255). Of course, you
can tweak this any way you want, giving
you the ability to change the waters main
features. A higher value in the Diffuse
and Specular will give a whiter water.
Step 2 b) Now, onto the
maps. Click on the map-bar at the bottom
of the materials editor so that the maps
rollup. In our case, we need to look
primarily at the Reflection and
Bump. Click on the empty box next to
the Bump checkbox, and select a new
map. Add a noise map here. In this box,
you'll need to experiment with the size
and tiling, giving you the kind of ripple
you want.
This is the Noise map window.
Adjust the tiling and the size of the bump
map. You can here see the values I used
for my water.
Again. it's important for you to
experiment to get the ripple you're
looking for. Remember that the bump map
is your waves. Try it out with
different values, and remember to turn of
any reflection since you can see the
ripples fine without the reflection
(remember to turn them on when you do the
final rendering!). The bump strength
should be from 20 to 40. I used 20. Also,
during this experimentation, try to pick
the camera angle you want.
Step 2 c) Ok, the next
map to add is the reflection map. On the
maps rollup, click on the empty box next
to the Reflection checkbox. Add a
new Reflect/Refract map and then
edit the values for it.
The map size should be set between
500 and 1000. The difference isn't all
that big, so you may want to keep them
low. But the you should try to keep them
on at least 500. Also, the strength of the
reflection map shouldn't be 100, since the
water will look too shiny and clear. 70 is
a good value, but again, try to find a
value you want.
Step 4. Now you have the
material for the water. Since this method
of creating water is stricktly
material-based, all you need to do is
apply it to the box you created for
surface. In my scene I added no light
sources, so the only light you see is the
MAX default light. No shadows are
generated. Position the camera in the
angle you want, render and voilá. You have
a water surface.
A few tips:
1. Don't rely on this material
to reflect any detailed objects. This is a
surface that creates a general reflection
of the landscape.
2. Do not have a to high
strength on the bump map. The surface will
look coarse, and loose details.
3. Atmospheric effects (such as
Combustion, Fog, Volume light...) will not
be reflected.
4.The larger the map size in the
Reflect/Refract is, the longer time is
spent on rendering.
Hope this will get you going. Remember
that this is a general way of creating
water, and that there are other ways. You
can of course use Space Warps to create
rippled or waved mesh instead of doing
this through materials. In any case,
experiment and see if it fits in your
scene.
Here is the finished scene with the
water. This is of course a very
provisorical scene created for this
tutorial, but the effect is clearly shown.
|