Creating an Underwater Scene in Blender- Part 1

April 2010

INTRODUCTION

Underwater scenes are one of the most exciting, inspiring, and gorgeous environments in real life and computer graphics world alike. And with this awe-striking appearance comes a very complex array of possibilities. From a photographer’s point of view alone, underwater scenes seem to be one of the most challenging places and situations to be at, let alone the difficulty of acquiring a proper lighting and the satisfactory combination of shutter speeds and apertures. Same thing applies also to recreating such a scene in computer graphics, specifically in 3D.

Throughout my career in 3D design and animation, I have never thought exactly how to approach an underwater scene not until I actually delved, sat down, and started thinking what approach to do. Fortunately, after hours of conceptualizing and imagining, I came with an approach, which might seem odd to others, but it works which. And that has been my primary motivation in writing this article and sharing my discoveries.

Hopefully, this wouldn’t be too software-centric as compared to my previous articles, which I was trying very hard not to do. The concepts I will present throughout this entire writing will be based off from my own experiences and repeated mistakes. Since there are so many possibilities in approaching problems, hopefully you’ll find mine to be one of the simplest one.

Let’s head on.

REQUIREMENTS

Blender 2.49b

Skill Level: Intermediate to Advanced

REFERENCES

Below are some reference images I looked up at Google. These will be our starting point and our scene bases.

You’ll notice from the images above that underwater scenes could greatly vary depending on your location and on how deep you are. The shallower your location is, the darker it might get, and the more life there would be. But for now, we’ll focus on just the ambience of the scene and we’ll try as much as we could to imitate this.

CREATING THE TERRAIN

Now that we’re comfortable with our references and how our scene will faintly look like, let’s go ahead and start the actual creation of our environment. First, we have to create our terrain where our props and other models will be situated on. I had this on the first order so that we can pretty much see where and how our props which we are going to model later will look like or if we ever need them to be in the scene at all. Approaching it this way will give us more leeway on the proceeding steps we’ll do later on.

For this environment, our terrain will simply be a subdivided smooth plane with varying elevations (as would have implied by water movement). To achieve this, first let’s delete whatever default scene elements we have (objects, lamps, etc.) by hovering our mouse pointer over to the 3D Viewport Window, pressing A once or twice (depending whether you have a selected object or not) to select all visible elements in your scene, and press X > Erase selected Object(s) or by pressing the Delete button on your keyboard. After this, we simply add a plane primitive mesh to the scene via spacebar > Add > Mesh > Plane or by clicking on Add > Mesh > Plane on the menu header. It’s a good idea to start adding objects in a hierarchical or orderly manner right from the start so we could easily keep track of our progress and solve problems that may arise later on.

Erasing the Default Scene Objects

Adding a Plane Primitive to the Scene

After adding the plane to our current scene, let’s go ahead and scale it a little bit larger just to give us an initial sense of scale and enough room to add our proceeding objects later. Do this by selecting the Plane Object (if it hasn’t been selected by default), then press S to scale and then type 5 consequently to scale it up by 5 Blender Units (BU) uniformly on the X, Y, and Z axis respectively. Or alternatively, you can use the Transform Toolbox (N) and type in 5 in the Scale X, Scale Y, and Scale Z input fields, better yet, to save time, enable the Link Scale button, and type 5 in either of the scale axes and the others will follow along.

The Default Plane Added to the Scene

Scaling the Plane Object

To review, what we basically did was to add a mesh primitive to our scene, in this case a Plane, then to have enough room to work on, we scaled it five times its original size. Looking at the plane in the 3D space though, you might notice that it lacked thickness which is one of the key roles of the z-axis, so with this in mind, we could just scale it along the x and y axes, disregarding the z axis, which we can do by pressing Shift Z after executing the Scale operation. What this will do is scale it only in the other axes excluding z, which will result in the same appearance as scaling it in all axes. But for future reference and to eliminate ambiguities later on, it’s better to just scale it in all axes which is the default option after doing the scale command.

Continuing from where we left off, we are now going to create more vertices from our existing plane, these vertices will be our manipulation points that will eventually define our object’s shape later on.

We’ll do this by subdividing our plane a couple of times. Select the plane object and proceed to Edit Mode (Tab) then position your mouse cursor on your 3D View and press W to access the Specials Menu, then choose Subdivide Multi and in the pop-up menu that appears, type in 20 to subdivide our mesh plane 20 times.

Now that we have a fair amount of vertices to work on, we can now sculpt out the shape that we want for our terrain, but before that we will first create a camera in our scene and make it our default. We need to do this prior to jumping in and creating our terrain so we don’t waste time by modeling parts of the terrain which are not going to be seen at all. To add our camera, move your mouse cursor over to your 3D Viewport and press spacebar then choose Add > Camera. After this, go to your front view (Numpad 1), switch to Perspective View by pressing Numpad 5 and look through your 3D Viewport as though your were looking via your camera, when all is done and you have your camera as your active selection, press Ctrl Alt Numpad 0. What this does is it changes your camera’s view to what you are seeing in your viewport. If you’re not comfortable with hotkeys, you can alternatively access this function by going to View > Align View > Align Active Camera to View . After having magically transported into the camera’s view, you can further enhance your viewing experience by enabling Passepartout which darkens the view outside of your current field of view. To do this, access it in the Editing Buttons window, and click passepartout and increase the Alpha to a non-zero value, depending on what you’re convenient with.

Most of the time though, you don’t want your passepartout to be totally opaque (Alpha 1), since it will then deprive you of viewing other objects that might be of importance to you that you wish to include later on your shot or view. Another disadvantage of setting it to a high value is you’ll have a hard time selecting the camera’s outline (which then selects the camera itself) because of the blending between your camera’s outline (black) and the dark bg.

Subdivide Multi Tool

Adding a Camera

Camera View and Passepartout

Align Active Camera to View Menu Option

Right now, our camera placement seems a little bit odd due to some empty space showing through on the bottom half of our view, to address this, we’ll simply zoom in our camera while on its own view. We can quickly do this by selecting the camera (through its border/outline), then press G for Grab and follow it up immediately by clicking on your middle mouse button and confirm it by left clicking or pressing the Enter key. What this trick does is it moves the camera along its depth axis or its local z axis, this way we can smoothly adjust the way our camera is placed in an inward and outward fashion.

Moving the Camera Along the Local Z-axis

Now that everything’s set, we’re good to start the actual sculpting of our underwater floor. Select the plane mesh and go to Edit Mode (Tab) then select few vertices from the plane, these points will represent our influence vertices. To get a better view from your selection process, you can exit your camera view by pressing Numpad 0, rotating your view with middle mouse button, or pressing Numpad 5.

Selecting Few Vertices

Now let’s go back to our camera view by pressing Numpad 0 or you could simply split your screen and have the other half always a camera view. With our vertices still selected, press O on your 3D Viewport and grab the vertices along the z-axis by pressing G then Z, then you will notice that neighboring vertices got pulled too, this is because we turned on Proportional Editing which is a very handy tool in manipulating meshes. To control the radius of influence, you simply scroll with your mouse wheel. You can access this menu and further more options on the 3D Viewport menu represented by a circle icon on the far left.

Proportional Editing

Let’s now go to camera view (Numpad 0) and start altering our mesh plane according to what we see in our view. Move the vertices like how we see in the screenshot below.

Moving the Vertices Proportionally

This would be a good shape for now. But since we wouldn’t want our plane to appear too blocky or edgy, all we have to do is go to Object Mode and click the Set Smooth button in Editing (F9) and under the Links and Materials tab.

Smoothing the Plane Mesh

After we’re done with the initial model of our terrain, let’s go ahead and assign a basic material to it, just a diffusion color for now then we’ll get back to it later and add in more material settings and textures. To do so, let’s head over to the Shading (F5) then to the Material buttons, then under the Links and Pipeline tab, click Add New to add a new material to the datablock. Let’s name it sand and check the screenshot below for more details on the material settings and shaders.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.