If you have played a computer game or seen a Hollywood movie recently, you have almost certainly experienced 3D graphics. In this module, you will be introduced to developing 3D applications using OpenGL, the industry-standard 3D graphics library. The module will cover programming and practical aspects and the underlying principles: you will learn how 3D graphics toolkits work and some of the underlying maths.
Lectures are scheduled for Monday 12:00-14:00 in TC12&13
Laboratory sessions are scheduled for Tuesday 14:00-16:00 in CSEE lab 4
Copies of all overheads will be handed out in the first session. If you are absent or lose your notes, any spares will be left in a box outside CSEE's School Office. However, you are also welcome to browse through them:
|4||3D coordinate geometry|
|5||Transformations in OpenGL|
Do also take a look at the summary of formulae that will be available on your exam paper.
You are expected to carry out your work under Linux. If you are not experienced with program development under Linux, you will be shown how individually during the laboratory sessions. However, it is a good idea to look at CE316's Linux resources page and to read through its notes on program development under Linux before coming to your first lab session.
All the example programs shown in lectures are available:
|Makefile||used for compiling programs|
|opengl-01.c||a "hello world" program|
|opengl-02.c||keyboard handling, window configuration|
|opengl-03.c||drawing a square|
|opengl-04.c||drawing a sphere|
|opengl-05.c||moving the viewpoint using gluLookAt|
|opengl-06.c||mouse and keyboard interaction|
|opengl-07.c||a shaded cube|
|opengl-08.c||an articulated arm|
|opengl-09.c||rendering a sphere with lighting|
|opengl-10.c||specifying normal vectors at vertices|
|opengl-11.c||moving a light source with modelling transformations|
|opengl-12.c||displaying images and text|
You will have to rename Makefile.txt to Makefile before using it — the web-server refuses to serve any files without a filetype.
The lab sessions give you an opportunity to put into practice some of the material that you learn in lectures. The software that you write will make use of OpenGL, the industry standard software library for 3D graphics, with implementations on Windows, Linux and MacOS. The demonstrators in the lab sessions are Adrian Clark and Erkan Bostanci.
|week 16||familiarisation with the development environment|
|week 17||designing and interacting with a cube model|
|week 18||vector manipulation routines|
In subsequent lab sessions, you will be working on your assignments.
There are two assignments associated with this module:
|Mon 20th February 2012 at 11:59:59 (week 21)||Surface plots|
|Mon 19th March 2012 at 11:59:59 (week 25)||Human animation|
The two assignments are each worth 20% of the total marks for this module; the remaining 60% comes from the examination held early in the summer term.
If you want to get to grips with the lecture material by working through some problems, there is a set of questions. The multiple-choice questions are there just to warm you up; the other questions are similar to those you will encounter in the summer examination.
OpenGL Programming Guide (the "red book")
OpenGL Reference Manual (the "blue book")
Nate Robins' tutorials
© Adrian F. Clark 2010-11