Home Graphics home Photos home Other Home Graphics home Photos home Other Beginnings Scenes Projects Resources Home Graphics 
home Photos 
home Other Panoramics Of 
interest Navigation

Double planetoid

Double Planetoid

[1280x1024]

This image is based on the M.C.Escher print, Double Planetoid. There are several Escher-inspired images on this site; I find his work fascinating and timeless. Double Planetoid is one of those images I can get lost in, despite its seeming simplicity (together with the related image, Tetrahedral Planetoid, which goes a step further by having an atmosphere). I first thought of producing a CG version of this print many years previously, but at the time I knew that my inexperience and lack of computing power would be a serious hindrance.

The finished result was so successful that I spent some time playing with the concept and generated some further images:


None of these are as good as the original above, but all bring something more to the concept. The fisheye views especially are fascinating, despite their shortcomings in showing up the limits of the model detail.

Creating 'Double Planetoid'

I knew that I didn't want to reproduce Escher's original geometry exactly. I had the vague notion that I could do a 'photorealistic' version, different from the stylized original in tone but preserving the central concept. I also knew that the rocky tetrahedron had to look right for the image to work, so started with that.

I first tried some sphere-blob-based isosurfaces with noise, which took ages to render and didn't really look right (a). Thanks to some advice from Mike Williams, isosurface guru on the POV-Ray forums, I eventually settled on four blobbed planes, carefully arranged within the container object so that the infinite sections wouldn't be visible (b). Adding pigment-functions as rocky noise made the render slower, but the rockiness much more believable (c and d), although I had to be careful with the amplitude to prevent lumps separating from the main mass at the vertices.

(a) (b) (c) (d)

Once I knew the rocky planetoid was feasible, I started on the buildings. I decided to build a single tetrahedral building for one vertex, extending down to the centres of the edges, and copy it for the other three vertices. The difficult part was trying to keep the local vertical sense pointing away from the centre of the planetoid; this was done with sharp transitions in the floor angle. Escher also eschewed curved floors for this method, but chose to hide the floor angle transitions inside buildings. This keeps things neater, but doing it the other way didn't really bother me because one could visualise the transitions as kind of ramps. A planetoid-dweller would start on level floor, and gradually start walking uphill as they approached the transition, then step over the apex and onto a downhill slope. Modelling the buildings was fairly labour-intensive trial-and-error CSG. Although I could often calculate the angles I wanted, a lot of testing was necessary to make sure things looked right.

At this point I started to do some test renders to pick a suitable viewing angle, and using radiosity to see what the structure might look like in a more realistic context. They look great, but the lack of colour gives them the appearance of intricate ornaments carved from limestone. A good look, but not what I was going for...! Click on the images for slightly larger versions.

Also evident in some of these pictures is my indecision over how to handle the transition between neighbouring vertex structures. I always wanted a bridge of some sort (Escher used a kind of boardwalk for his planetoid), but should I use the rock ridge as a support, or have the bridge jump the ridge entirely? I eventually settled for the latter. I also decided not to carve holes in the rocky planetoid to allow the building through (as in the original). Some early tests proved very slow to render and didn't look very good. It's certainly possible, but tricky!

The original picture had vegetation and prehistoric creatures populating the rocky planetoid. I drew the line at the dinosaurs, but I thought some sparse vegetation would look the part. I built a simple spiky bush as a mesh (a), and a simple dead tree as a union of spheres (b), and placed them randomly over the rock (except in the space occupied by the buildings) using the trace() function (c and d). All the plants are angled up away from the centre of the planetoid, and decrease in density at higher altitudes.

(a) (b) (c) (d)

Once finished, I also experimented with lighting the structure from its own surface in a night-time setting. It looks very interesting, but much of the detail is lost and the render time (already lengthy) started to become prohibitive.

[768x768] [600x600]
Knot