SI31 - AGR

Advanced Computer Graphics

Resources


OPENGL


Introduction
OpenGL is the first graphics system we shall use in the module.  It is an industry standard graphics library which has evolved from an earlier product (IRIS GL) that only ran on SGI hardware.  The version we shall use on the Linux PC's is Mesa, which is a 3D graphics library matching the OpenGL API.

The OpenGL Programming Guide is available from the Computing Student Office in the Long Room, at a cost of £3.00.

Getting Started with OpenGL
There are example programs in the directory:

/home/cself/gr2lab/OpenGL/Glut3.7/progs/redbook
Copy a selection of these to your own filestore.  For example, two to get you started are
cube.c
robot.c

To build an executable OpenGL program:

Then, to build an executable version of the 'cube' program, type:
make cube
To run it, type:
cube

The cube program is example 3.1 in Chapter 3 of the manual (page 'Chapter 3, Viewing - 6').

GLUT
OpenGL has been defined independently of the windowing system with which it is used (this allows it to run under the X Window System on UNIX, and Windows on PCs).  Appendix D of the OpenGL Programming Guide describes the use of a toolkit called GLUT that interfaces OpenGL to the windowing system.

To help you get started, you might find it useful to look at this annotated version of cube.c, where I have explained what the different GLUT calls do.

A Simple Exercise
Here is a first exercise to get you started.  Working from the cube.c program, develop an edited version which draws a red, solid torus (with no scaling); the program should terminate when a user types 'q'.

Information about OpenGL
Here are useful sites for further information:

VRML

General Information

Web3D Consortium
This organisation looks after VRML and other web 3D technologies.

Tutorials

Floppy's Guide to VRML
This is an excellent introduction to VRML

Books

Annotated VRML Reference Book
This is the ISO standard with commentary.

Simple Examples

Here are links to some of the examples I demonstrated in the lectures:

Simple Cylinder
This is the simplest possible VRMl file - just a few lines...

Transformed Cylinder
... this adds a transformation in order to squash the cylinder...

Anchor
... this shows how to hyperlink using the anchor node.

Touch Sensor and Time Sensor - Simple Routing
This shows how to use a touch sensor to control a dimmer switch.

Interpolator Node
This uses a time sensor and orientation interpolator in order to rotate a sign.

Proximity Sensor
This shows effect of proximity sensor in detecting the presence of viewer.

Teleporting
This shows how to teleport the viewpoint.

Script Node
In this example, Javascript (aka vrmlscript) is used to animate the heights on an ElevationGrid node.
 

POVRAY


POVray Site

GENERAL RESOURCES FOR COMPUTER GRAPHICS


ACM Transactions on Graphics
This is one of the leading research journals for computer graphics.  They also maintain an excellent web site which contains many useful links.  There are two particularly useful areas of the site:

GRAPHICS MISCELLANY


Illusions

Ames Room - a famous illusion which exploits the power of perspective.

Teapots

The Story of the Teapot - the teapot has played an enduring role throughout the history of computer graphics.
 

Email:
kwb@comp.leeds.ac.uk


Ken Brodlie
January 2001