Search Contact information
University of Cambridge Home Department of Engineering
University of Cambridge > Engineering Department > Machine Intelligence Lab People

Graham Treece


ENGINEERING TRIPOS PART IIA

Module 3G4 - Medical Imaging and 3D Computer Graphics

GLUT surface rendering demos





You will need both GLUT and OpenGL libraries to run these demos. If you are using Windows, you will probably already have OpenGL32.dll and GLu32.dll, but you will need Glut32.dll and Glut.dll, and you might need OpenGL.dll and GLu.dll. These usually need to go in the Windows\System directory.

Several of the demos also need some images which should reside in an 'images' directory alongside the directory where the executable is.

For those using Windows, just download the images and the demos into the same directory, and unzip.

In most of the demos, the menu can be accessed by right-clicking in the window.


Example of using z-buffers (use the 'b' key to toggle the buffer on and off), and the middle mouse button to rotate.

Executables: Windows, Linux.

Source: glpuzzle.c.

Example of how lighting is affected by the number of polygons and type of polygonisation.

Executables: Windows, Linux.

Source: tess.c.

Example of the effect of coloured lights in coloured objects, and using flat and smooth shading.

Executables: Windows, Linux.

Source: lightlab.c.

Example of working out the importance of multiple coloured light sources.

Executables: Windows, Linux.

Source: multilight.c.

Example of moving positional lighting interacting with a plane and an object. Also planar shadow generation. Note the nasty specular effects on the corners of the object.

Executables: Windows, Linux.

Source directory: ideas.

Fun ... 'moth' flying around a light, with shadow generation.

Executables: Windows, Linux.

Source: moth.c.

Fun ... and example of animating a walking object. Note the interpolated shading effects on the various parts of the object as it walks.

Executables: Windows, Linux.

Source file: glutmech.c.

Example of lighting, shadows and 2D texture mapping on a teapot.

Executables: Windows, Linux.

Additional files: images.zip (must be unzipped one directory up from the executable).

Source: teapot.c.

Fun ... example of lighting through a window.

Executables: Windows, Linux.

Additional files: images.zip (must be unzipped one directory up from the executable).

Source: tunnel.c.

Example of the use of texture to generate an underwater effect. Also demonstrates use of positional and directional lighting.

Executables: Windows, Linux.

Additional files: underwater_files.zip (must be unzipped in the same directory as the executable).

Source directory: underwater.

Example of using texture mapping to generate the reflection of an environment onto an object.

Executables: Windows, Linux.

Additional files: images.zip (must be unzipped one directory up from the executable).

Source: gloss.c.

Example of using texture mapping to mimic ray tracing.

Executables: Windows, Linux.

Source: ray.c.

Example of textures and reflections by rendering a scene multiple times.

Executables: Windows, Linux.

Additional file: chess.inp (must be in the same directory as the executable).

Source directory: chess.

Example of using shadow z-buffers. Once found, the shadow z-buffer is rendered in the original scene as a transparent polygon, to generate the shadow.

Executables: Windows, Linux.

Source: shadow.c.

Example of adding fog in a second rendering pass.

Executables: Windows, Linux.

Source: af_teapots.c.

Fun ... and example of animating the interaction between various moving objects.

Executables: Windows, Linux.

Source directory: atlantis.

Fun ... using fractals to generate realistic objects / scenes.

Executables: Windows, Linux.

Source: fractals.c.

Fun ... and example of texture mapping and shadows.

Executables: Windows, Linux.

Additional files: images.zip (must be unzipped one directory up from the executable).

Source: fire.c.


(Mostly!) Copyright 1997 Silicon Graphics Incorporated.
© 2005 Cambridge University Engineering Dept and Graham Treece .
Information provided by gmt11