3D Underwater Scene

14 May 2010

Underwater 3d sceneIn this tutorial we’re going to create an underwater scene in 3ds Max. We’re going to create a deep blue sea with light rays and bubbles. Creating convincing underwater scene is a challenging task and I’m not even trying to create a physically accurate simulation. Rather I’m using my artistic freedom to neglect some real world rules to get the look and feel I’m going for.

Step 1 Mental Ray Renderer

We’re going to render our 3d underwater scene with the Mental Ray. By default 3ds Max uses the Scanline renderer so we have to change that. Change the renderer to Mental Ray ( Rendering > Render Setup… > Common tab > Assign Renderer > Production > Mental Ray Renderer ).

Step 2 The Basic Geometry for the 3D Water

Create a plane ( Create panel > Geometry > Standard Primitives > Plane ) in the top viewport . Modify the plane ( Make a selection > Modify panel ) according to the following parameters :

  • Length: 1000
  • Width: 500
  • Length Segs: 200
  • Width Segs: 200

Plane object in the top viewport

( We need a dense (80k faces) mesh because we’re going to deform it with the displace modifier. )

Step 3 Water Surface with the Displace Modifier

Add Displace modifier to the plane ( Make a selection > Modify panel > Modifier List > Object-Space Modifiers > Displace ) and apply the following parameters:

  • Displacement
    • Strength: 17
  • Image
    • Map: Noise

Open Material Editor ( Rendering > Material Editor > Compact Material Editor ). Drag and drop the Noise map from the Displace modifier into a material slot in Material Editor and select ‘instance’ when asked. Apply the following parameters to the Noise map:

  • Noise Parameters
    • Noise Type: Turbulence
    • Levels: 10
    • Size: 300

Displacement map settings and effect on the plane

Step 4 Water Material

Now the water geometry is complete so let’s apply a material to it. Open Material Editor ( Press M in keyboard ), click on the second material slot, and create the material:

  1. Click “Get Material” button and select ( doubleclick ) ‘Arch & Design (mi)’ from the list.
  2. Select the water plane and assign the material to it.
  3. Select template from the drop-down list: Water, Reflective Surface
  4. Transparency: 1,0

Mental Ray water material

In the material settings, go to the ‘Advanced Rendering Options’ rollout and set the following parameter:

  • Advanced Trasparency Options
    • Glass / Translucency treat objects as…: Thin-walled (can use single faces)

Finally we’re going to change the bump map settings to get smaller and steeper waves. In material settings, go the ‘Special Purpose Maps’, click on the Ocean shader, and apply the following parameters:

  • Largest: 100
  • Smallest: 1
  • Quantity: 20
  • Steepness: 5

Parameters of the Ocean shader

Step 5 The Environment for Underwater Scene

Since we have highly reflective and refractive material we desperately need effective environment as well. Without environment, the rendered water surface would just appear black. Next we’re going to cheat in 3ds Max. We’re going to create a highly unrealistic environment. However, it just happens to produce the kind of reflections and refractions I’m going for. So let’s create the environment. Go to the environment settings ( Rendering > Environment… ) and apply the following parameters:

  • Background
    • Use Map: YES
    • Environment Map: Gradient Ramp

Open Material Editor ( press M in keyboard ). Drag and drop the Gradient Ramp map from the background settings into a material slot in Material Editor and select ‘instance’ when asked. Apply the following parameters to the Gradient Ramp map:

  • Coordinates rollout
    • Mapping: Spherical Environment
  • Gradient Ramp Parameters rollout
    • Flag #1: Color: RGB 0, 16, 67 Position: 0
    • Flag #2: Color: RGB 189, 225, 240 Position: 100
    • ( delete the middle Flag by right-clicking and selecting ‘delete’ from the menu )
    • Noise
      • Amount: 1
      • Type: Fractal
      • Size: 2
      • Levels: 10
  • Output rollout
    • Output Amount: 3

Environment map parameters

Step 8 Prepare the 3D Underwater Scene for Rendering

Let’s prepare our underwater scene for the first rendering. Create a Target camera ( Create panel > Cameras > Target ) in the top viewport. Right-click on the Perspective view and press C in the keyboard to change it to the Camera view. Create ‘mr Area Spot’ ( Create panel > Lights > Standard > mr Area Spot ) in the front viewport. Move the camera and spotlight around to get something like the picture below.

Camera and spotlight placement

Apply the following parameters to the area spotlight ( Make a selection > Modify panel ):

  • General Parameters
    • Shadows: OFF
  • Intensity/Color/Attenuation
    • Multiplier: 2

Now it’s a good time to make a test render to see how the water looks like.

Water test render

Some kind of watery effect but it doesn’t look much like an underwater scene yet. Let’s add Fog to make all the difference.

Step 9 Underwater Fog

Go to the Atmosphere settings ( Rendering > Environment… > Atmosphere ) and add the Fog:

  1. Click ‘Add…’ button, select ‘Fog’ from the list and click ‘OK’.
  2. Use Map: YES
  3. Environment Color Map: Gradient Ramp
  4. Open Material Editor ( Press M in keyboard ). Drag and drop the Gradient Ramp map from the Fog settings into a material slot in the Material Editor and select ‘instance’ when asked.
  5. Mapping: Screen
  6. Angle W: 90
  7. Flag #1: Color: RGB 0, 11, 45 Position: 0
  8. Flag #2: Color: RGB 70, 144, 255 Position: 100( delete the middle Flag by right-clicking and selecting ‘delete’ from the menu )
  9. Output Amount: 1,5

Settings for underwater fog

Before we render, let’s adjust environment ranges. Select the camera, go to the modify panel, and apply the following settings:

  • Parameters
    • Environment Ranges
      • Show: YES
      • Near Range: 200
      • Far Range: 810

Now we see the environment range in the viewport. It’s the area between beige and brown line. The fog will appear between these lines. By default the density of the fog is 0% at near range and 100% at far range. Adjust the values or camera position if necessary.

Scene with environmental ranges

Render the scene and you should get something like the picture below. Fog works well in underwater scenes. This time it serves two purposes. It fades the water edge to the background and creates the nice blue gradient color.

You could also try different camera angles to get different kind of water surface.

Basic 3d underwater scene

Step 10 Underwater Light Rays

And of course we’re going to create some light rays to enhance the mood of our underwater scene. Go back to the Atmosphere settings ( Rendering > Environment… > Atmosphere ) and add Volume light effect:

  1. Click ‘Add…’ button, select ‘Volume Light’ from the list and click ‘OK’.
  2. Click ‘Pick Light’ and click on the area spot we created earlier
  3. Density: 7

default volume light settings

If you are not familiar with volume lights, I suggest you render now to see how the effect looks by default (so far we’ve just increased the density a little). The next step is going to have a dramatic effect to the volume light. We’re going to use projector map to block most of the light and to use attenuation to fade the light to the background. Select the area spot, go to the modify panel and apply the following parameters:

  • Intensity/Color/Attenuation
    • Color: RGB 32, 137, 255
    • Far Attenuation
      • Use: YES ( Now you can see the attenuation ranges appearing as lens-shaped sections of the cone )
      • Start: 430 ( Sets the distance at which the light begins to fade out. )
      • End: 650 ( Sets the distance at which the light has faded to zero. )
  • Advanced Effects
      • Projector Map
      • Map: Noise

Open Material Editor ( Press M in keyboard ), drag and drop the Noise map from the projector map slot into a material slot in the Material Editor, and select ‘instance’ when asked. Apply the following parameters to the Noise map:

  • Coordinates
    • Source: Explicit Map Channel
  • Noise Parameters
    • Noise Type: Turbulence
    • Levels: 10
    • Size: 0,05
    • Low: 0,35 ( Decrease this if you need more rays and increase this if you need less rays. )

Light rays with projector map

Render your underwater scene to see the light rays.

3d underwater

Step 11 Underwater Bubbles

Our unrealistic environment might not be perfect for underwater bubbles but let’s see how they look anyway. Create a particle cloud in the left viewport ( Create panel > Geometry > Particle Systems > PCloud ). Select the particle cloud, go to the modify panel and apply the following settings:

  • Basic Parameters
    • Display Icon
      • Rad/len: 230
      • Width: 700
      • Height: 480
  • Particle Generation
    • Particle Quantity
      • Use total: 1000
    • Particle Timing
      • Emit Start: -10
    • Particle Size
      • Particle Size: 1,5
      • Variation: 100
      • Grow for: 0
      • Fade for: 0
  • Particle Type
    • Standard Particles: Sphere

Place the particle cloud so that it fills the view underwater. ( You can also change the size of the emitter if necessary. )

As a final thing we’re going to use a glass material for the bubbles. Press M in keyboard to open the Material editor, select a material slot, and create the material:

  1. Click ‘Get Material’ button and select ( doubleclick ) ‘Arch & Design (mi)’ from the list.
  2. Select the particle cloud and assign the material to it.
  3. Select template from the drop-down list: Glass (Solid Geometry).

Arch & Design glass material

Render the scene to see the bubbles. Some bubbles look ok while some look too bright. Furthermore, these bubbles are perfect spheres so they are not really realistic as underwater bubbles, but at least they are fast and easy to create!

3d underwater scene

Step 12 The Final Render of the 3D Underwater Scene

If you look closely you’ll see some jagged edges in the bubbles. Let’s adjust the sampling settings to get a more polished render. Go to the render setup and increase antialiasing quality by increasing Mental Ray’s sampling values ( Rendering > Render setup… > Renderer > Sampling Quality ):

  • Samples per pixel
    • Minimum: 4
    • Maximum: 64
  • Filter
    • Type: Mitchell ( For most scenes the Mitchell filter gives the best results. )

Beware, rendering time might be an issue with all these effects and sampling settings (about 1½h with quad core 2,33GHz Q8200). Render your scene to see the final image. I did some adjusting in Photoshop as well:

  • Contrast: +80
  • I removed a few overly bright bubbles from the lower left corner

Underwater scene

That’s it. Happy rendering!

Click to share if you like it!

92 Responses to “3D Underwater Scene”

« Older Comments
  1. Photon says:

    Nice tut! Appreciate the time u put into it ))
    I learned alot, thanks again

  2. Photon says:

    Heres my result (Vray engine)
    First render,dont know how i got them ripples in the rays tho,will tweak some some ^-)


  3. dru says:

    arch and design was not in the materials list… do i need to down load it or something?

    • polygonblog says:

      No, It’s there. You probably have to change the renderer to mental ray first.

  4. Photon says:

    Dru, u need to select Mental ray as your renderer (afaik)

  5. sameesh says:

    superb tutorial……..1st time i looking this image was v ray rendering….unbelievable…. rendering…?…………thnx…….polygonblog

  6. Phil says:

    The best tutorials I’ve been able to find about rendering water. Very nice job!

    Any thoughts as to how you might go about rendering a scene that has contents both above *and below* the surface of the water? It seems like the fog and volumetric lighting would cause problems above the water’s surface… two separate renderings, maybe?

    Thanks for the great work!

    • polygonblog says:

      Thank you! I’d do two separate renderings.

  7. Amy says:

    Thanks a ton! I learned alot!!

  8. Giovanni Lima says:

    Awesome… Very very helpful! Tnks

  9. milad says:

    Hi, thanks man i love such tutorials.thank you very much again.

  10. Kammeron says:

    Thanks! Really Good Tutorial. Keep up the good work.

  11. Mordi says:


    When I try to render my scene after having added the lightrays it stops at “100% Computing Final Gather Points” for some reason. If I turn the camera away from the light and render, it works fine.

    Anyone care to help?

    • polygonblog says:

      It takes a lot of time to render this (1,5h in my case) so it might just progress very very slowly.

      • Mordi says:

        Yep, you’re right. I let it stay on for a good while, and it started rendering. Takes a good while!

      • Phoenix says:

        hey awsome tutorial but i was wondering about something, what if i want to move the camera from under water to above water? i tried to do that but didnt get nice resault bec of the stuff in enviroment

  12. Fiddlesticks says:


    heres my try

  13. Richard says:

    Wow nice tut but you’re right rendering takes a long time.

  14. richard nagy says:

    the airbubbles underneath the water have a lower optical density than the water. so you should use a refractional index, that is lower than 1. ussually n(water)= 1.33 n(air)= 1.003 so the refactional index of the bubbles should be 1.003/1.33 which is appr.= 0.75. but this is just a little correction due to physical corecctness. :) very nice tut.

    • richard nagy says:

      (this is actually one of the very few cases where u need a refactional index lower than 1… :)

      • polygonblog says:

        Thank you Richard for your insight!

  15. dinushi says:

    thanks! really good tutorial . keep up the good work.

  16. Moetor says:

    Great tutorial! Thanks

  17. Blackmantis says:

    Brilliant tutorial! Very easy to understand and well written, however the light rays are not showing up for me in the final render (everything else works just fine). Any ideas?

  18. Clne says:

    Thanks ! You save me for my student work !!! Thank you so much !

  19. SnakeBlue says:

    I don’t have the right program to do this kind of thing myself, I’m hoping you won’t mind if I borrow this for a background.
    (asking first, if you do mind I’ll try something else.)

  20. Sanketh rao says:

    Its avery good tutorial..:)

    I learned a lot frm tis..:)

    Thankssssss polygonblog..:)


  21. Sanketh rao says:

    i got the effect..:)

  22. Dejan86 says:

    Great tutorial, I got it working!
    I have a slight problem when animating the scene. It seems like the water surface is remapping itself every few frames. How can I fix this issue? Is it the turbulence noise?

  23. MP20 says:

    could you tell me how to make bubbles and under water light motion?

  24. ASHIIII says:

    HI great tutorial!! but i have question if any one would answer please, i put camera in scene but when it rotates the surface of the water changes so fast.. i tried to play around with the noise and everything in the material editor but couldnt know whats wrong any one? :) awsome tutorial learned alot

  25. Dejan86 says:

    @ASHIIII – For each frame, the noise modifier will be recalculated leading to a different pattern on the water surface. To eliminate this issue, follow these steps:

    -> Open the material editor
    -> Select your surface material
    -> Open the “Special Purpose Maps” sub-menu
    -> Click on “water, reflective surface (bump) Ocean” map
    -> Here you will find a variety of options; make sure you set the following (Ocean sub-menu) attributes:
    – Loop Animation: off
    – Loop Frames: 0

    I think this will make it better :) Try that and give us feedback afterwards

  26. Im made a few additional adjustments with the render settings.So,It did take a long time to render.but this is what I made thanks to your wonderful tutorial.http://fav.me/d461e12

  27. wookey says:

    Thx man, you`re saving my ass

  28. Ayan says:

    very good job thanks man very nicely explained

  29. Kay says:

    Hey, I was trying to get this to work, but the water plane won’t show up when I render, I just get an eternal plane of fog, no matter where I put the camera. Anyone know what’s going on?

  30. peto says:

    Tutorial No.1 , everything works on first try, it helped me in other things, Thank you :)

  31. kendy says:

    thx alot for the tuts

  32. Steffen says:


    thanks for the great tutorial. It gave me a lot of tips for my Blender project ;)


  33. luis angel says:

    hello, i did everything as you show in the tutorial, but i cant get the lights rays, why this happen?

    link to my results

  34. Nick says:

    Hi, good tutorial but i have a problem with my attempt.On the render just above “step 10″ the background and water plane are blended/fade together. In my attempt there is a very distinctive line/devide between the two, which makes it appear unrealisitc. do you know why this is happening and what i can do to fix it?

  35. stephen says:

    haha, once i added the volume light everything slowed way down, took nearly 7 minutes to render one frame. gonna have to stop there. the result before hand is something i can work with

  36. saurabh says:

    nice ..

  37. Ali Pourahmad says:

    Yessssssssssss . . . .! Tnx a lot

« Older Comments

Leave a Reply