DM809 Computer Game Programming I: Graphics

Fall 2010, 1st quarter (last two weeks of August)
Rolf Fagerberg

Official Course Description

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

Time and Place

The course is a summer course, and takes place from August 16 to August 27. There will be lectures each day (Mon-Fri) during these two weeks. The hours will normally be 9:15-12:00, and will take place in Imadas seminar room.


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

The book has a website, with lots of pointers to useful additional material.

For the programming project 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. The exam date is October 27. A programming project must be passed in order to attend the exam. The deadline is October 6.

Note that the exam takes place after the first quarter, even though the lectures are all in August. The deadline for the programming project is near the end of the first quarter.

At the oral exam, you will draw an exam topic delineating a part of curriculum which you are to present in the first part of the examination. More details of the exam form are described at the bottom of the list of exam topics. The exact exam curriculum is also stated there. The sequence of students at the oral exam can be seen here.

There will be a spørgetime (session for asking questions on the exam and the curriculum) Monday, October 25, at 13:30 in U51. There will be another one (for those who cannot attend the first) Tuesday, October 26, at 13:30 in U142.

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


Date Time Room Contents Reading
Monday, August 16 9-12 Imada seminar room Introduction to course (slides). The graphics rendering pipeline. The slides. Chapter 2, Chapter 3, and Section 18.1 in the textbook.
Tuesday, August 17 9-12 Imada seminar room Transformations. Homogeneous coordinates. Projections. Chapter 1 and sections 4.0, A.4, 4.1, and 4.6 in the textbook. It may be helpful to refresh your knowledge on vectors and matrices by browsing A.1, A.2, and A.3.
Wednesday, August 18 9-12 Imada seminar room More on projections. Change of coordinate systems. Euler angles. Sections 4.6 and 18.2 in the textbook. Pages 81-82 in 3D Game Engine Design by David H. Eberly, Morgan Kaufmann, 2001 (given as handout). Section A.3.2 in the textbook and notes by teacher. Section 4.2 in the textbook. For at derivation of the full perspective "projection" matrix (eq. 4.68) which transforms the view frustrum to the 3D unit cube (cf. Fig. 4.19), not just to a 2D projection plane (cf. Fig. 4.18 and eq. 4.65), see e.g. these notes by Kenneth E. Hoff III (not curriculum).
Thursday, August 19 9-12 Imada seminar room Quaternions and their use for interpolating rotations. Start on shading. Section 4.2 in the textbook. Section 15.3.8 from Advanced Animation and Rendering Techniques by Watt and Watt, ACM Press, 1992 (given as handout). Overview of rotation representations. Sections 5.1-5 in the textbook.
Fridag, August 20 9-12 Imada seminar room Shading theory and models. Sections 7.1-7 in the textbook (most, but not all, of this has been covered).
Monday, August 23 9-12 Imada seminar room More on Shading theory and models. Rest of Chapter 7 in the textbook (except Section 7.8.1, which will be covered later).
Tuesday, August 24 9-12 Imada seminar room Area and environmental lighting. Chapter 8 in the textbook.
Wednesday, August 25 9-12 Imada seminar room Textures. Chapter 6 in the textbook.
Thursday, August 26 9-12 Imada seminar room More on textures. Antialiasing. Alpha blending. Gamma correction. Image based techniques. In the textbook: last parts of Chapter 6, Section 7.8.1, rest of Chapter 5 (except Section 5.6.1, which is not curriculum), and Chapter 10 (except sections 10.9-11, which are not curriculum). For more on gamma correction, see e.g. this note by Charles Poynton (not curriculum).
Friday, August 27 9-12 Imada seminar room Shadows (planar shadows, shadow maps). Acceleration algorithms: spatial data structures, culling techniques, level-of-detail. Sections 9.1.0-1 (pages 331-339), 9.1.4 (only first part, pages 348-352), and 12.5 in the textbook. Chapter 14 in the textbook.

Maintained by Rolf Fagerberg (