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!

48 Responses to “3D Underwater Scene”

  1. Henk says:

    Very nice! Like the end result a lot :)

  2. Froberry says:

    Amazing! This is so awesome, thank you ! :D

  3. Mimo says:

    Amazing, I dont know how you do it. but your a genius :D

  4. _mark says:

    I like it without the bubbles. great tutorial, thanks!

  5. Ahmad says:

    Wow
    simply amazing :)

  6. emiliano says:

    we only need the naked baby after the bill ;)
    great job

  7. Ariez says:

    Wow, awesome. I’m so pleased. Glad to have you here with us. Thanks bro. Thanks for fulfilling my request. Good job, you’re rock!

    • polygonblog says:

      No problem. Glad to hear you like it!

  8. Donald says:

    Gr8 Tutorial… Thank You

  9. Sachin says:

    nice tut…

    but am not getting any kind of rays in my scene…i followed all the steps which you told above.

  10. Sachin says:

    finally i got the rays after restarting 3dsmax..

  11. Patrick says:

    Hi there, you’re tuts are so awesome!! very understanding and easy to follow. I’m a beginner in 3D design. I think it would be great if you do a tut about modelling a character. Keep going like this!

    greetz from the Netherlands!!!

    • polygonblog says:

      Happy to hear you like my tutorials! Character design tutorials are under consideration…

  12. Sebastian says:

    I’ve applied Enviroment Ranges with your settings, but the waters edge is not getting faded. I use all the default settings, and I’ve set up everything just like you show on your pictures. Please help!

    • polygonblog says:

      Go to the front viewport and check that the Far range ( brown line ) is closer to the camera than the edge of the water (like in the picture in step 10). If you can’t get it to work you can send the file to me and I’ll try to help. I’ll contact you by mail.

  13. Ben Henry says:

    Love it!

  14. sergen says:

    hi.. just wanted to say thnx. i love your tuts. like everyone i also would love to see a character design or a rigging tutorial. thnx in advance, greetings from Turkey.

  15. bromat says:

    Beautiful image. Congrats

  16. 3d newbie says:

    i have a question, why does my rendering process takes ages? is there any specific settings for the Final Gather in the indirect illuminance tab that u set? can you list them if you do, and can you tell me how to restore my overall settings back to preset. thanx, a very nice tutorial btw.
    :)

  17. 3d newbie says:

    Forgot to mention, that this problem occurs only when i add on volume light effect.would be pleased to get a reply from you.
    :)

    • Jero says:

      i think only reason why it takes long time is becouse your Prosessor is old. Buy new 800€ quad core prosessor and u render it lot faster :D i have same problem.

  18. abinayaranjitha says:

    very nice.i like that

  19. abinayaranjitha says:

    the under-water scene looks like a natural water

  20. vijay says:

    hey this a great tut thanks for the share

  21. Theo Hodkin says:

    Hey, fantastic tutorial, and although I don’t use 3DS Max (and therefore have no idea what you’re talking about…), I have to say that this blog is fantastic. Great presentation and all you’re tutorials are smooth, well written and amount to great final resultS! Well-done, and all the best for the future!

  22. Jero says:

    Hello, Fantastic tutorial!. i mean WHOA! so well create tutorial about i must say WHOA! best one what i have seen :D I hope you make these more :) but one thing u could add here. after every step you should make somekind close/open block or something what will explain what happened when that setting maded and what happened when that setting made.. i mean this is awesome tutorial but i have no clue how to this tutorial whitout looking here again :D if u can add thatkind thing here it would be perfect :D then i dont need go to tutorial websites to look tutorials to create awesomness for employer. :)

  23. santosh says:

    awesome one, gr8 tutorial, you made it so simple. good work

  24. aywan says:

    wow

  25. Donald says:

    http://www.facebook.com/photo.php?pid=335711&id=100000189109742 here is my result

  26. shiraz says:

    gr8 work buddy!!!

    • milad says:

      Hi shiraz.Im Milad from shiraz.Can i have your email plz to have a contact with you?

  27. dude says:

    great tutorial, but i have 2 questions:

    1. what unit scale do you use? i used meters and the result differs a little from yours. there’s a repeating structure in the water.

    2. i would like to do an animated scene with the camera diving into the water. is it possible to combine this tutorial with the 3d water tutorial, so you can see the sky above the horizon AND water under the surface?

    • polygonblog says:

      1. I use generic units.
      2. Anything is possible but these tutorials don’t mix well. I recommend doing two different scenes and rendering them separately.

  28. Youngkie Pratama says:

    hope you make tutorial for character / organic thingy…

  29. Ahmed says:

    Very nice thank you :)

  30. Linah says:

    I CANT GET THE RAYS :( ((

    I RESTARTED MY WHOLE PC NOT ONLY MAX .. AND STILL NOTHING :’(

    I WANT RAAAAAAAAAAAAYS

  31. Linah says:

    I GOT them :) .. i forgot to pick the light in the volume light :) LOL

  32. cheezusrice says:

    Nice tutorial :)

    Everything turned out the same as yours did.

    But I need to get my friend to render it for me, my processor is kind of junk :P

  33. F.M says:

    AAAAAAAA, nooooo. My computer was not good enough to render that. It fired up :( ((((((((((((

  34. Zera says:

    That’s cool!!!

  35. Jon says:

    This is an amazing tutorial… I used it for my latest submarine animation though it took two weeks to render the underwater sequence using MentalRay :-( Well worth it though!

    http://www.youtube.com/watch?v=43HgtRhCgDM

    (not sure if embeds work)

    Jon @ WoodMarvels.com

  36. wow says:

    AAA!Thank you!

  37. hina says:

    wow all tutorial are awesome really good work dude i am really inspired and got so much help from your tutorial

  38. mel says:

    no rays ..only one shaft of bright white light…No rays at all 6 shots at it ..no rays.. in 2011max

    • polygonblog says:

      Make check three things:

      1. There is noise as projector map in the area light
      2. The noise in material editor is an instance copy
      3. You have applied all the noise settings correctly:

      Source: Explicit Map Channel

      Noise Type: Turbulence
      Levels: 10
      Size: 0,05
      Low: 0,35

      If it doesn’t help, you can send me the file and I’ll try to find the problem. I’ll contact you by email.

  39. DanRM says:

    thanks for the tutorial
    so helpfull

    i prefer without bubbles :P

  40. steph says:

    Mine:

    http://s83.photobucket.com/albums/j311/wandering_dragon/?action=view&current=underwaterscene.png

    I really enjoyed doing that one!

Leave a Reply