Adventures in PovRay, Part 2
01-Mar-2007
If you've read
my first PovRay article, you'll know how much I love this
free ray-tracing program. I'm also a fan of the work of British sculptor
Antony Gormley, particularly his piece 'Field', which I was lucky enough to see at the British Museum several years ago. For those not familiar with his work, here's a photograph of Field:

Field is made up of thousands of small terracotta figures, most of which are not sculpted by the artist himself, but by volunteers, school children, etc. They follow a rough design, but every figure is unique; this isn't a mechanical placement of identical objects, it's a much more organic and haphazard experience, which is what makes it so compelling.
Finding myself with a few hours to spare recently I set myself the challenge of reproducing Gormley's Field, using my very limited PovRay experience. Here's the end result:

Walkthrough
Here's how I created the above model.
Step 1: Build the gallery
First I added the walls of the gallery, using a single temporary ambient light source.

Step 2: Lights and texture
I removed the temporary ambient light, and replaced it with a series of spotlights, similar to what you might find in a typical gallery. I also added a wooden floor to the gallery. Placing the spotlights, and adjusting their angle and intensity was probably the most time consuming aspect of the whole project.

Step 3: Design the figures
The terracotta figures are very simple, just one blob on top of another, with cut-outs for eyes:

To ensure the finished model looked as "realistic" as possible, it was important to make every figure individual; I therefore randomised each figure's size and colour.

Step 4: Populate the gallery
To fill the gallery with thousands of unique terracotta figures, each in a random position, I fell back upon my strongest skills: programming. I'm aware that PovRay script can handle basic language structures, but it was quicker and easier for me to write a C# program which generated each figure and its placement, and spat out the resulting PovRay code. The resulting model took a LONG time to render, but I'm pleased with the result:
