Computer Vision & Graphics EE2031

HE2. Module Spring 2012


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.

 

Syllabus


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.



Adrian Hilton