Lecturer: Adrian
Hilton (a.hilton@surrey.ac.uk)
Introduction
This is an introductory course in computer graphics. The first half of the module will cover fundamental techniques for 3D graphical modelling and image synthesis. Advanced methods for surface representation and animation will be introduced. in the second part of the course. Techniques used for production of computer generated imagery for film and broadcast will also be covered. Course time will be split between 2 hour lectures covering computer graphics theory and 1 hour practical computing laboratories.
The practical component of the course will introduce the implementation of graphics techniques using the industry standard OpenGL language. As a pre-requisite to this module students should have completed a first course in a programming language such as C. The practical component will be assessed via an assignment (to be set in week 5) which will count 30% towards the final mark.
OpenGL Exercises
OpenGL exercises should be
conducted on workstations the labs 32BB03 (penguin*) during the allotted time.
Exercises are based on the GL and GLUT libraries which
are installed on the laboratory workstations. These libraries are also
available for Windows/Linux machines see resources below.
Exercise 1 (week 1): Getting Started
Exercise 2 (week 2): Shape Primitives
Exercise 3 (week 3): Viewing
Exercise 4 (week 4): Appearance
Exercise 5 (week 5): Special Effects
Lecture Notes
Lecture notes can be downloaded in pdf format: NOTES
Resources
Numerous OpenGL reference sources and tutorials are available on the web. Mesa3D is a cross-platform software implementation of OpenGL, you will also find that many operating systems/graphics cards include native OpenGL implementations which use the available hardware. GLUT is a cross-platform toolkit for used through out the exercises.
OpenGL:
OpenGL.org - Everything you wanted to know about
OpenGL
OpenGL FAQ - Frequently
asked questions on OpenGL
SGI OpenGL - The original
OpenGL development site.
Mesa3D - Cross platform OpenGL compliant
software library (used for exercises)
GLUTv3
- OpenGL Utility Toolkit (Reference Manual)
FreeGLUT
- Open source GLUT implementation with some improvments
GLUI - User Interface
Library
Red Book v1.0 - OpenGL
Programming Guide online (online version of first edition)
Red Book v2.0 - OpenGL Programming
Guide revised and up to date but not free
OpenGL Reference Pages -
Complete documentation of OpenGL comands
Background on Computer Graphics:
ACM SIGGRAPH -
the Mecca of computer graphics (lot's of useful stuff)
web3D.org - 3D graphics on the web/VRML
OpenGL ES – 3D graphics for
embedded mobile applications
Blender - public domain animation tool
OSG Open Scene Graph - OpenGL high
performance graphics toolkit in C++
OpenSG - Portable scenegraph system for real-time graphics using OpenGL
Assignment Tips:
fscanf() - C function to read
from text files
GLUT
Menus - GLUT Reference - Menu Management
Please let me know any further
suggestions for useful CG related links and any broken links above.