Home Page
Services
Web Design
Multimedia
Animation

Hosting and E-Commerce

Clients and Projects

Contact Us





Additional Work




An Ocean Water Tutorial


by D.M.S.


First, a couple of tips on water as I see it.

     1. Waves in the ocean appear to move upwards as if coming out of the ocean. This is opposed to simply moving the wave textures across the surface on the X and Z directions. That method never seemed to have worked for me.
     2. Water is primarily a distorted reflection of its surroundings. Therefore, if it has nothing good to reflect, it will look fake.

With those points in mind, let's get started.






Part I - Modeling

Modeling in this case is very simple.

In Modeler, create a plane (a.k.a. box) 500km by 500km on X and Z. Give the box 4 segments in both directions. This will give a total of 16 polygons. Select the outside 16 points and move them 10m on the +Y axis. (I make the object slightly concave so that there is no black line on the horizon when using SkyTracer.)


Give the polygons a surface named "water," and turn smoothing on. Save this object as "water.lwo."






Part II - Reflections

As mentioned, we need a nice environment for our water to reflect. Out in the ocean, and in most cases, the sky will be the most prominent feature.

In Layout, set your ambient light intensity to an appropriate setting. I used 19.5% for my daylight setting. Rename the default light in the scene to "sun." Make the light color a very light yellow, and make sure the light's intensity is at 100%.

Go to Effects>Image Processing. Activate SkyTracer. Hit Options for SkyTracer. I won't go into the details of the settings to use, so use this file: oceansky.skt.

Hit "Render Warp Images." Leave the resolution at 512 for now (that will take long enough as it is), and give the files whatever name you wish to use. Lightwave will now render out 5 different IFF images for use in mapping the front, back, sides, and top of a huge cube. You will also find that Lightwave gives you a new LWO file somewhere in your content directory. (Note: This might only happen with newer versions of SkyTracer.) This object already has the images mapped properly in place.

Now, uncheck "Enable SkyTracer." This will prevent SkyTracer from re-rendering each frame when we go for the final render. However, our settings, should we want to change them, will stay in place. Close the SkyTracer Options window.

Load your "LW_Sky.lwo" into Layout, or use mine LW_Sky.lwo , and scale it up to 1000 on X, Y, and Z. Then, load your "water.lwo." At this point, make sure your camera is somewhere near the middle of the scene and do a few test-renders to make sure your sky is mapped properly. Make sure that the surfaces for your LW_Sky.lwo all have 100% Luminosity and 0% Diffuse. This is so lights in our scene won't affect the sky, which is usually what you'll want.

Create two null objects. Name one "waternull" and the other "ripplenull." These will be used as reference objects for our textures later on.


Save your scene in case something crashes...I hate it when that happens.






Part III - Texturing

In the Surfaces panel, select your water surface. Here are the settings you'll need:
Color- RGB Values 57,88,121
Luminosity- 0%
Diffuse- 93.5%
Specularity- 93%
Glossiness- 400
Reflectivity- 25%
     Reflection Type- Ray Tracing and Spherical
     Map Spherical Map- Tinfoil.tga (under Reflections in your
     Newtek\Images directory.
Bump Map- 1
     Texture Type- Fractal Bumps
     Opacity- 100%
     Reference Object- waternull
     Size- 2m,90cm,90cm
     Texture Amplitude- 65%
     Frequencies- 3
Bump Map- 2 (Add New Texture)
     Texture Type- Crumple
     Opacity- 100%
     Reference Object- ripplenull
     Size- 50cm,50cm,90cm
     Texture Amplitude- 50%
     Number of Scales- 4
     Small Power- .75

An example of this surface is here: water.srf.

For animating the waves, move the "waternull" and the "ripplenull" objects approximately in the same direction in the X and Z axes. Moving them in slightly different directions seems to look more natural since, to me, the ocean seems to be made up of "layers" of waves moving in different directions.
Make the waternull rise on the +Y axis about 48cm per second, and have the ripplenull rise about 10cm per second. You can adjust these all you want depending on how fast you want your water to animate. Slower, smoother speeds usually work better. This same animation effect can also be accomplished through the "velocity" setting in the surfaces panel. I prefer this method, however, since it seems to be more accurate and easier to use for my purposes.






Part IV - Rendering

In the Camera panel, it's good to set antialiasing to at least low. The water effect just looks like noise otherwise. In the Render panel, turn on "Trace Shadows" and "Trace Reflection." I set the Ray Recursion Limit down to 2 so that we don't have light rays bouncing all over creation and eating up rendering time. Of course, this would depend on your scene.






Part V - Suggestions
Now that the primary settings are in place, it's time to add to them.

Almost always, especially here in Southern California, you'll never be able to actually see the horizon.
Right now, where the water meets the sky, it's simply too clean. Add some fog in the distance using Steamer or another plugin.

For the different times of day, use a different colored sun. Of course, after you change the color, you'll have to re-render your SkyTracer warp images to get the full effect.


I have found the above method to be a reliable and processor-friendly way to create nice water effects. I hope that you enjoyed this tutorial.