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.
- Blender 2.49b
- Skill Level: Intermediate to Advanced
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.