DM809 Computer Game Programming I: Graphics

Fall 2008, 1st quarter
Rolf Fagerberg

Official Course Description

See the course description at the web pages of the faculty.

Time and Place

Since no slots free for all can be found, the schedule will rotate among slots where few (normally at most three) persons have overlap. This should minimize the overall overlap, and distribute it somewhat evenly among those affected.

The schedule for the entire course can be read from the plan of lectures below.

The course takes place in weeks 35 through 41. The first lecture is Monday, August 25. This first lecture will only be from 13:15 to 14:00 (due to teachers obligations in connection with information to new first year student).


As textbook, we will use the following:

Real-Time Rendering, 3rd edition
By Tomas Akenine-Möller, Eric Haines, and Naty Hoffman
Published by A.K. Peters, 2008
ISBN 987-1-56881-424-7

Note that it is the 3rd edition, which has just come out. The book has a website, with lots of pointers to useful additional material.

For the programming projects in the course, you will need to become acquainted with a graphics API of you choice, (OpenGL or DirectX), and possibly an interface to it from your preferred programming language (say, Java). For this, you may very well want to buy a book on your chosen graphics API. However, note that the course will contain basically no teaching on the actual use of graphics APIs, and the choice of API and accompanying material is left to you.


The exam is oral, with grades on the 7-point marking scale. Programming project must be passed in order to attend the exam.

The exam date will be October 22. The room will be U149C (in the recently built buildings).

At the oral exam, you will draw an exam question delineating a part of curriculum which you are to present in the first half of the examination. More details of the exam form are described at the bottom of the list of exam questions. The exact exam curriculum is also stated there.

The sequence and expected times of students can be seen here.

There will be a spørgetime (session for asking questions on the exam and the curriculum) Monday, October 20, at 14.15 in U49E.

The grades at the exam ended up with the following distribution.


Date Time Room Contents Reading
Monday, August 25 13-14 Imada seminar room Introduction to course (slides). The slides.
Friday, August 29 12-14 Imada seminar room Transformations. Sections 1.0, 4.0, 4.1, 4.2, A.3.2, and A.4 in the textbook (given as handout).
Tuesday, September 2 12-14 U46 Projections. Section 4.6 in the textbook (given as handout).
Thursday, September 4 12-14 U24 Discussion of the project. Representations of rotations: Matrices, Euler angles, axis/angle. Quaternions for axis/angle representation. Section 4.3 in the textbook (given as handout). Overview of rotation representations. Section 15.3.8 from Advanced Animation and Rendering Techniques by Watt and Watt, ACM Press, 1992 (given as handout). Handout, but not curriculum: note by Hans J. Munkholm showing that any rotation can be expressed as a rotation around an axis. Much more material (including code) on rotations can be found on the net. See e.g. this Wikipedia page, and the references in it.
Monday, September 8 08-10 U49 More on quaternions, interpolations, slerp, squad. Same as last lecture.
Wednesday, September 10 12-14 U49C A bit more on the perspective projection. The graphics pipeline and programmable shaders. Pages 81-82 and 85-87 in 3D Game Engine Design by David H. Eberly, Morgan Kaufmann, 2001 (given as handout). Chapters 2 and 3 in the textbook (given as handout).
Thursday, September 18 14-16 U46 Shading. Sections 5.1-4, 7.1-3, 5.5, 7.4, and 8.3 in the textbook
Monday, September 22 14-16 U49C Advanced shading models: BRDFs Sections 7.5-9 in the textbook.
Wednesday, September 24 08-10 U46 Area and environmental lighting. Sections 8.1-4 in the textbook.
Friday, September 26 08-10 U46 More on area and environmental lighting. Start on textures. Sections 8.5-6 and 6.1 in the textbook.
Tuesday, September 30 14-16 U49D Textures. Transparency and alpha-blending. Sections 6.2-7 and 5.7 in the textbook.
Wednesday, October 1 14-16 U46 Gamma correction. Image based effects. Sections 5.8, 10.1-3, and 10.5-7 in the textbook.
Wednesday, October 8 14-16 U46 More on image based effects. Sections 10.8 and 10.12-14 in the textbook. For a bit more details on the techniques for depth-of-field, see this webpage (not curriculum).
Friday, October 10 14-16 U46 Fog. Volume rendering. Polygon simplification. Acceleration algorithms: spatial data structures, culling techniques, level-of-detail. Sections 10.15-16 and 12.5.1 in the textbook. Chapter 14 in the textbook.

Course Evaluation

As part of the Study Boards schedule of course evaluations, a course evaluation has been carried out (after the course, before the exam). The aggregated answers (with comments removed for anonymity, as required by the Study Board) and the teachers plan of actions are now available.

Maintained by Rolf Fagerberg (