Photo-realistic Rendering of
Synthetic Procedural Planets on a Grid

Manuel N. Gamito

Department of Computer Science
The University of Sheffield

 

The realistic rendering of complex procedural terrain over the entire surface of a planet is a CPU intensive task that can benefit from a grid implementation. This grid implementation is particularly simple if a ray tracing algorithm is chosen to perform the rendering. This is because in ray tracing each image pixel is rendered independently of all the others by tracing a viewing ray through the pixel and finding its intersection with the scene. It becomes, therefore, a straightforward task to split an image into smaller regions and to schedule the regions across the available processors.

A grid implementation of a ray tracer is here presented for rendering computer animated image sequences of a virtual camera travelling over a synthetic procedural landscape. This work was developed as part of the CIC6004 course in Grid Computing, offered by the Corporate Information & Computing Services Centre of the University of Sheffield. At the same time, the course work was intended to provide a valuable tool for the research developed by the author as part of his PhD work. For this reason, the current grid rendering tool will continue to be supported and developed in the future.

The grid rendering tool implements distribution at two levels. At the higher level, individual images are distributed across the available grid nodes by a meta-scheduler that runs remotely from a desktop PC with secure access to the grid. At the lower level, each image, after being assigned to some grid node, is split into smaller regions that are subsequently distributed across the processors of that node. Distribution of image regions across a node is handled by the local job scheduler for the node. A complete description of the grid tool can be found in the technical report CS-07-01 for the Department of Computer Science that is available below. This report also includes in appendix the source code for the meta-scheduler, which was written with Python script.

PDF format (298K) (CS0701.pdf)

The grid rendering tool was tested on the White Rose Grid and used three of its nodes: the Iceberg node at Sheffield and the Everest and Snowdon nodes at Leeds. The image on the right shows an example of a synthetic procedural landscape that can be rendered with this tool. By clicking on the image it is possible to download the original high resolution image that was rendered on the Iceberg node.

The image on the left shows three frames of a 500 frame computer animation of a virtual camera travelling over a synthetic planet at a constant altitude of 25 metres and with a constant speed of 60 km/h. Played at the rate of 25 frames per second, the 500 frame animation corresponds to 20 seconds of playback time. At the speed the camera is travelling, the animation would need to have a duration of almost a month of continuous playback time for a complete circumnavigation of the planet to be achieved. In this impractical scenario, the first and last frames of the animation would be equal and the animation could be looped indefinitely.

The complete animation took five days to complete on the White Rose Grid. It can be downloaded as a Quicktime movie file from the address below. A free Quicktime player must be installed first and is available at the address http://www.apple.com/quicktime.

Quicktime MOV format (32.4M) (flyby.mov)