This image is a near complete rework of an image I originally submitted for the POVCOMP October deadline. The original image was based on a similar theme, but with a more 'Cyberpunk' feel with the foreground occupied by a figure plugged into a portable computer, presumably up to no good. The ambience was somewhat lighter, and represented an earlier point in the voyage timeline when humanity was still somewhat evident.
With the advent of the extended deadline, I decided I was unhappy with a number of things. The general atmosphere of the image wasn't "dark" or claustrophobic enough for my taste. The level of detail needed a boost. It used a 3rd party poser model, and associated 3rd party textures. The foreground relied heavily on external modelers (Poser and Amapi), and although I am certainly not a POV purist, the basis behind POVCOMP is to show off the power and flexibility of POVRay itself, not some external tool. So as painful as it was, I moved the focus of the image back and removed the foreground, and eliminated my Poser and Amapi models including the 3rd party figure and textures. All remaining scene elements underwent a major overhaul, and many new ones were added, bumping up the scene complexity by an order of magnitude. Bitmaps were kept to an absolute minimum, and were only used when using a POV SDL algorithmic texture was impractical.
The first step in any project I do is to try to visualise what it is I'm trying to achieve. To help me do this I sketched out as many scene elements as I could in various levels of detail. I find this helps keep me on course and gives me something to work from. It's also a motivational help seeing piles of unrealised sketches lying next to the computer!
Radial, wheel shaped space colonies are not an uncommon theme in science fiction, and I wanted to show a miniature, self sustained environment designed in such a way as to be able to sustain generations of humans. I decided that the best way to do this was to create an earth like terrain that wrapped itself around the inside of a cylinder. I used World Machine to algorithmically generate a flat 2d height map, and exported the heightmap to a raw 32bit FP data file. I then wrote a quick program that takes the 2d heightfield data, translates it around an arbitrary cylindrical arc and generates a POVRay smoothed mesh (full source code and executables will be made available on my web site). As an optimisation, I made the landscape tileable so that when rotated 180 degrees, the ends line up and appear almost seamless. This way I was able to use a relatively small heightfield many times in the scene without the memory/parse requirements of a single larger mesh. If you look at the scene carefully, you might notice that the foreground landscape is identical to the background landscape on the other side of the lake if rotated 180 degrees! The river and lake were added by differencing a cylinder from a cylinder, and filling it with scattering absorbing media to give it the murky look. The air is simply a torus shaped to the approximate dimensions of the structure interior, filled with an emissive media to give the foggy polluted look.
This is algorithmically generated, and consists simply of cylinders placed in a toroidal shape, with triangles textured to look like glass in between them.
The Transport Tube
This is generated from a spline which itself is generated from the coordinats of the tube pillars. The spline is divided into segments, each segment being a separate entity consisting of a glass tube constructed from a pair cylinders. The end of the tube is attached to a ring connecting it to the next segment. Underneath each glass tube is the support framework which is built from cylinders, spheres, and boxes arranged into girder and rod formations. The entire segment is then transformed into the correct position along the spline. The hanging cables are then added. The cables are in the form of a hyperbolic cosine and should accurately model real world physics in the way they hang from any two points, with the gravity vector being the inverse of the vector to the closest point on the wheel axis. The math for that got quite difficult and I ended up spending over a week just getting the equations right and even then I'm not sure.... but they do look quite nice!
The structures are placed pseudo-randomly on the landscape. For each structure, the trace call is used to select a position on the landscape and that position is examined to determine if it is suitable for a structure. For example, if there is an existing structure too close, or the gradient of the land is not flat enough a different place will be selected. The structures themselves are fairly simple CSG operations on boxes, spheres and cylinders, except for the pyramidish looking one which is a hand generated mesh.
The trees scattered around the landscape are generated in a similar way to the buildings, but in addition to just using the SDL trace call for placement, it is also used for each leaf to ensure that the leaf does not intersect or poke through the walls of a neighboring building! Each tree is individually generated by an algorithm with places the trunk (which consists of a cone and a sphere) at an appropriate angle from the ground, and leaves (which consist of hand/algorithmically coded smooth meshes) which appear to droop toward the ground.
The Plasma Rail
The primary light source of the scene is a toroidally shaped ring filled with plasma. As with many of this scenes components, it is divided into segments and algorithmically generated. Each segment consists of a completely transparent cylinder filled with emitting media. Each cylinder contains an adaptive fading area light (21 in total) along it's length. Connecting each cylinder with it's neighbors is a torus stretched to a near cylindrical shape.
The Tube Carriage
The carriage in the transport tube is made from bicubic patches designed from scratch in SPatch. Its exhaust is an emitting/absorbing media filled cone.
As mentioned earlier, I used SDL pattern textures where possible, and even when bitmaps were used, they were most often used blended in layered textures. Where bitmaps were required, they were based on photographs I had taken personally at some point, and modified in Texture Maker and GIMP, or generated natively by me in one of the two mentioned software packages.
After many months of hard work and CPU cycles, I am finally happy with the image. Having been constructed with detail in mind, much of that detail is lost in the screen sized 1600x800 render. To demonstrate the detail available at higher resolutions, I have attached additional detail images to this submission.
All SDL code and textures in my submission are my original creations for the purposes of POVCOMP 2004. All SDL code and textures in my submission have been made freely available, and may be used by anyone, for any purpose, with no restrictions.