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!

facebooktwittergoogle_pluslinkedinrssyoutubeby feather

92 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:

    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!

  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!!!

  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. 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.

  14. bromat says:

    Beautiful image. Congrats

  15. 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.

  16. 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.

  17. abinayaranjitha says:

    very nice.i like that

  18. abinayaranjitha says:

    the under-water scene looks like a natural water

  19. vijay says:

    hey this a great tut thanks for the share

  20. 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!

  21. 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. :)

  22. santosh says:

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

  23. shiraz says:

    gr8 work buddy!!!

  24. 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.

  25. Youngkie Pratama says:

    hope you make tutorial for character / organic thingy…

  26. Ahmed says:

    Very nice thank you :)

  27. Linah says:




  28. Linah says:

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

  29. 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

  30. F.M says:

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

  31. Zera says:

    That’s cool!!!

  32. 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!


    (not sure if embeds work)

    Jon @ WoodMarvels.com

  33. wow says:

    AAA!Thank you!

  34. hina says:

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

  35. 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.

  36. DanRM says:

    thanks for the tutorial
    so helpfull

    i prefer without bubbles :P

  37. Photon says:

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

  38. Photon says:

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


  39. dru says:

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

  40. Photon says:

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

  41. sameesh says:

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

  42. 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!

  43. Amy says:

    Thanks a ton! I learned alot!!

  44. Giovanni Lima says:

    Awesome… Very very helpful! Tnks

  45. milad says:

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

  46. Kammeron says:

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

  47. 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?

  48. Richard says:

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

  49. 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.

  50. dinushi says:

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

  51. Moetor says:

    Great tutorial! Thanks

  52. 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?

  53. Clne says:

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

  54. 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.)

  55. Sanketh rao says:

    Its avery good tutorial..:)

    I learned a lot frm tis..:)

    Thankssssss polygonblog..:)


  56. Sanketh rao says:

    i got the effect..:)

  57. 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?

  58. MP20 says:

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

  59. 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

  60. 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

  61. 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

  62. wookey says:

    Thx man, you`re saving my ass

  63. Ayan says:

    very good job thanks man very nicely explained

  64. 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?

  65. peto says:

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

  66. kendy says:

    thx alot for the tuts

  67. Steffen says:


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


  68. 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

  69. 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?

  70. 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

  71. saurabh says:

    nice ..

  72. Ali Pourahmad says:

    Yessssssssssss . . . .! Tnx a lot

Leave a Reply

+ five = 12