![]() |
SI31 - AGRAdvanced Computer Graphics |
![]() |
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:
To build an executable OpenGL program:
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:
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.
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:
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