The ball uses a map to place the opaque metal and the red glass - a custom shader simply chooses between the two shading models. Its important to note that Oi is a colour, not simply an alpha channel. This allows the glass to be transparent red rather than simply transparent and red. Apart from the highlights the glass has Ci=0,0,0 and Oi=0.1,1,1 so all the colour is provided by the transmittend light.
There are actually two versions of the ball shader - one with and one without the glass. To get the coloured shadows, the shadow maps are rendered once with each shader. Both sets of maps (12 in all) are passed into gelpoint.sl which uses the shadow map with the glass to control the colour of the light, and the shadow map containing just metal to provide the hard shadows.
Animation in the scene is provided my simply moveing the light source around, as seen in this quicktime.
The candle flame is a cylinder with a displacement map to provide the correct shape. A wax shader provides the glow on the candle. The texture on the wallpaper, below the picture is made by summing sin waves.
NCCA, Bournemouth University