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