Artificial Intelligence for Games, 2nd edition
By Ian Millington and John Funge
Published by CRC Press/Taylor and Francis Group, 2009
ISBN 9780123747317

Collision Detection in Interactive 3D Environments
By Gino van den Bergen
Published by Morgan Kaufmann/Elsevier, 2004
ISBN 155860801X

The book has a website (click on menu
entry "Interesting").

Examination

The exam is oral, with grades on the 7-point marking scale. The exam
dates are January 23 and January 27.

A programming project must be passed in order to
attend the oral exam. The deadline for the project is January 6.

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 below the list of exam topics.

Introduction to course (slides). Some
elements of 3D graphics and OpenGL
(slides).
Start on transformations
(slides).

The slides. Chapter 2 in the textbook. Chapter 3 is not curriculum
for the oral exam (and will not be covered at the lectures), but is
useful to read with respect to the programming. Pages 16-25 on GLUT
from the book OpenGL Programming Guide, 6th ed. (handout, an older
version of the book is
available
online). Sections 4.1-2 in the textbook.

More on transformations
(slides). General rotation matrices,
specified by axis and angle.

The slides.
Sections 4.3-5 in the textbook. Sections 5.4.1-4 in the textbook.
(For section 5.4.3, you may also look at the
lecturer's informal notes on the
proof).

Rotations specified as a change of coordinate system, and its use in the
viewing transformation. Affine transformations.

The
lecturer's notes on change of
coordinate system. Section 4.6 in the textbook. Sections 5.2 and
5.4.5-8. No proofs of sections 5.2, 5.4.5 and 5.4.7 are curriculum, but
you should know the contents of the statements. These sections are
summarized in the
lecturer's informal notes.

Sections 11.1-9, 11.11.1-2, 11.12. 11.14 in the textbook. In the course,
we only
cover the (Blinn-)Phong light model. Many others models (as well as
empirically based reflection data sets) exists, see Section 11.13 or
(not curriculum) the
Wikipedia
page on BRDFs for overview and directions. Also, the paper (not
curriculum)
Experimental
Validation of Analytical BRDF Models (Ngan, Durand, Matusik,
SIGGRAPH 2004) is a nice read with good introductory value. In
particular, it explains
(presentation
slides of paper, page 44-52) better than the textbook (pages 420-22)
why using the half-vector in the specular term is a better choice than
using the reflection vector (in particular, the claim of Example 11.3 in
the textbook that they are essentially equal is only true when the eye
vector lies in the plane determined by the normal vector and the light
vector). Empirically, using the half-vector is in better correspondance
with real life - specular reflections at oblique angles are not round
(which turns out to be the case when using the reflection vector), but
vertically elongated (which turns out to be the case when using the
half-vector), as can be seen on
any
photograph of a harbor at night.

Barycentric coordinates and interpolation. Textures
(slides).

Sections 7.1-3. The lecturers
notes on barycentric
coordinates is an alternative to Section 7.2.
Chapter 12 (excluding Section 12.4.2), Section 13.6 (actual math of
13.6.1 is not curriculum, the method in Section 13.6.2 is both simpler
and much easier to create textures for). Sections 13.9-10 (actual math
of 13.9 is not curriculum - think instead of the normal vectors of
Figure 13.27 being stored in a texture).

Perspectively correct interpolation. Derivation of the full
projection matrix.

Section 19.1.3.
An alternative presentation is pages 81-83 in 3D Game Engine Design by
David H. Eberly, Morgan Kaufmann, 2001 (handout) and
the lecturers notes.
Section 18.1. An alternative derivation (not
relying on Appendix A, which is not curriculum) is
lecturers
notes.

Fix for avoiding division by zero in projection and clipping
step. Change of normal vectors during transformations. Shadow
maps. Midterm course feedback. Start on collision detection, basic
primitives.

Section 19.1.2. Sections 11.11.5-6. Section 18.2. In the textbook by
Gino van den Bergen: Sections 3.1
and 3.2.0.

More on collision detection, basic primitives. Start on physics
simulation: particles.

In the textbook by Gino van den Bergen: 3.4.1, 3.4.2, 3.4.4, 3.4.6
(i.e., rest of chapter 3 in the book by van den Bergen, except tests
involving polygons). Sections 1-3 in the
Witkin
notes.

More on physics simulation of particles. Start on physics simulation of
rigid bodies.

Sections 4, 5, 7 in the
Witkin
notes. The first subsection of the
Wikipedia
page on Runge-Kutta methods. Notes by Chad
Berchek on elastic collisions of balls in 2D (in 3D, simply change the
separating line to a separating plane in the last half of the
notes). The math left out in the derivation in the 1D part in the first
half of the notes can be found in these
notes by Patrick Rutkowski (not
curriculum). Sections 1, 2.1, 2.2, 2.4, 2.7, 2.8 in the
Baraff
notes.

Rest of Section 2, sections 3, 4, 5, and 6 in the
Baraff
notes. Overview over terminology
(English and Danish) for physical quantities underlying rigid body
simulation.