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 and submitted in week 10) which will count 30% towards the final mark.
OpenGL Exercises
OpenGL exercises should be conducted on workstations the labs 32BB03 (duck*,swan*,whale*,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
OpenGL Assignment
Assignment: 3D Maze Game – assessment Monday 14th May 4-6pm in the lab., report submission Tuesday 15th May 4pm to the UG office
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.