The Last Guardian
"The Last Guardian" by Johnny Yip - ranked 1st
[Order Poster from Zazzle]

In a place where time stands still, a lonely beast takes guard over the sacred water; it is the last creature of its kind, living proudly within the realm of fantasy and reality.

Index - Next ]
Long Description

So the story goes...

"Tis a fine sunny day in early spring, 1875, our ship wandered aimlessly in the middle of the Atlantian Sea. It has been 35 days since our departure from, the crews are tired, our supplies are short, and the weather isn't helping either. With the occasional midnight storms, I doubt that our ship can withstand anymore beatings. There is hardly any hope left... our hope to reach the very edge of the world."

All of a sudden, a turbulent shock rocked the ship at the bow, and in a split second a giant creature rose from one side and glides over to the other, knocking down sails as it passed. Very quickly, water rushed in from all directions and soon the entire ship gave into the waves. Slowly, the ship sank to the bottom of the Ocean, it's final resting place

The purpose of "The Last Guardian" is to demonstrate the power of Povray with regard to modeling. Due to the fact that my system is only a 450Mhz P3, I do not have the luxury to use some of the more calculation intensive features such as photon mapping and radiosity. As such, my submission will be focused primarily on modeling techniques using the Povray SDL. I want to show potential Povray users that Povray is not just a great raytracer, but it is also a powerful modeling tool if you use it effectively. In fact, a computer graphics artist should not rely solely on the tools to make great pictures. Use your imagination, make something that people don't see everyday, and have fun with it!

It was a very interesting project to work on, but because of work and school, I was unable to make full use of the extra three months to enhance my picture. Fortunately, I was able to get a few friends to assist in the rendering when it is time for submission. I would like to acknowledge their generous help and thanks!

Making Of

The Ship

The ship is constructed using a base model and a bunch of decayed surfaces. The base model is constructed using CSG (lots of sphere and cylinder intersections), combined with a few macros that allow duplicated structures to contain variations in their smaller sub-components (ex. the beams have variation in rope position, length etc). A basic dark wood texture is used for this CSG base because most of the surfaces will be covered by decayed surfaces later on. The ropes are sphere sweeps using a 4-point spline curve.

The decayed surfaces is made entirely out of isosurface. The ship is broken down into major components such as the hull (3 sections), beams, rails etc, and individual isosurfaces are layered over each component. Macros are created to generate basic isosurface shapes such as sphere and cylinder (and other primitives), and they are used to match the shape of the ship's components. Several parts, such as the hull and the balcony at the stern cannot be layered with basic isosurface shapes. Therefore I have to create specialized functions to layer them, which usually involve the use of "CSG-equivalent" operations with the functions (such as min, max).

The last step is to make the ship look wrecked, and I can easy do so by adjusting several parameters in the macros and added blobs of isosurface to give places some more uneven surfaces.

The Sea Monster (The Guardian)

The sea monster is composed of a sphere_sweep body and two pairs of fins. The fins are created using blobs that are flattened. The sea monster uses a rough texture for the skin (crackle normal and light crackle pigment pattern, which looks obvious on the fins). The belly is a much lighter and surface texture using very light wrinkles pigment pattern.

The terrain

The terrain consists of the two fore ground terrains, one on the left and one on the right, both using heightfield. The fore ground terrain heightfield is made in Povray using wrinkle pigment patterns. Because heightfield doesn't look all that great at hi-res, I've also added rock fragments in the fore ground using isosurface with a pigment function.

The Water

The water is a scattering media that scatters a blue-ish cyan-ish colour. The upper part of the water has a higher density and it gradually decreases to very low density at the ocean floor. To make the water looks "thicker" near the ocean floor, I added a ground fog with a blue-ish colour (could've used a filtered fog) and some slight turbulence.

To make the water more believable (at least I tried to), I've also added some "water particles" and a filtered plane to simulate very slight fake caustics on the ocean floor. The water particles is simulated by placing a plane slightly in front of the camera, with a wrinkles pattern that contains 99% transparent space.

The top part of the water surface is made using two other planes, one to generate a white pattern and the other to simulate the refraction. This combination gives the illusion that we are viewing the water surface within the ocean below.

Finally, the quality of the water can be adjusted to give differen effects. The cuurent render uses a not-so-high quality level because I can achieve the grainy effect to show microscopic underwater particles.

The Lighting

My initial intent was to use an isosurface as the ocean surface, and uses the IOR property of the water media to create the scattering sunray effect... That was not successful. So I ended up using multiple shotlights, and attached a "sun ray maker" to each of them. This sunray maker is simply a sphere with a wrinkled texture where half the surface is transparent. These spotlights are then projected into the water in a overall "cone shape" to generate a scattering effect.

Other lights in the scene includes a few background lights that also comes from above. These lights serve to illuminate the ship and the terrain because the spotlights are not sufficient. Because they also interact with the water media, I had to turn them to fairly low intensity so the water doesn't look too bright.

The last type of light used was "backlit light". They are generally located around the ship but do not necessarily illuminate from above. These lights do not interact with the water media and their purpose is to make the decayed surfaces more apparent. The same techique was used for the corals as well.

The Camera

Nothing interesting, simply banked it slightly to make it less boring. I used a vertical aspect ratio to give a sense of "deepness" underneath the ocean.

The aquatic plants

There are at least 6 types of plant used in this image, each made with isosurface, sphere sweep or combination of both. The more common coral is made using isosurface, staring from a basic sphere and applied two "layers" of deformation using Povray's internal noise functions. The first layer deforms uses f_noise3d to make the sphere less round, and the second layer uses f_noise_generator to create the smaller "spores". Another plant, the anemone, uses sphere sweep to generate the hairs and combined them in a semi-spherical way. Feel free to check out the source code to see the rest.

Lastly, I did random coral placement using the trace command, where I laid them down in small groups.


Like the sea monster, the fish are made using several sphere_sweep's, and then flattened on one side. The fins and "tail" are also made with sphere sweep, but flattened even more. The generic fish (the ones that are farther) uses a quilted normal with a specular finish to create the fish scale texture. There are two types of fish, the foreground and background. The foreground fish is placed randomly along the top terrain line. The top group of fish is placed using a procedural algorithm.

I am proud to say that this scene is done 100% in Povray 3.6, with the help of a tool called SpilinEditor by Alessandro Falappa to visually model the spline points for the guardian and the fish.
Tools Used

Povray 3.6, SpilinEditor, Photoshop (conversion to JPG)

Supplied Files (81 kb)

Detail Images

Detail 1: 800x800 @ 578,602

Detail 2: 800x800 @ 105,328
Judges Comments

Great picture: excellent composition, excellent underwater mood (always difficult), excellent POV-based modelling, good concept. Should make a great poster. On the minus side, it's a little dark and grainy, and the creature makes it a "genre" image, thus restricting it's appeal.

This image immediately caught my eye due to its overall composition. It is obvious that significant thought has been put into its creation and excellent and clever use has been made of SDL to create a complex and rich scene. It is particularly impressive that you have managed to create a scene that can still be rendered with limited resources. The image has ambience and subtly while retaining localised contrast. This can only be attributed to the skillful use of lighting functions and techniques. The detail level is impressive, and I particularly liked the way in which you have used isosurfaces to generate the decayed structure of the ship. Texturing, modelling, lighting - all top notch. Excellent work!

Great mood, great use of lighting, the work on the coral and the ship was excellent. Fish and creature very well positioned as well, the use of the fish was very effective as well. Everything in the picture seemed to be in the right place. Highly commendable that it did not rely on any imports but that the author made use of POV-ray facitities exclusively. The outstanding effort.

The image has a superb ambience and the attention to detail is excellent. A big plus for using extensively the primitives and features of POV-Ray (instead of resorting to cheap meshes created by third-party tools). The details in the ship, which endure even a great deal of zooming, are commendable. Also the natural-looking distribution of the shoal of fish (instead of being just purely random) is beautiful. I only hope this image will endure printing, as it has some dark parts in it...

Index - Next ]
All entries and comments are copyrighted and the property of the author.
No content on this site may be used without appropriate permission.