Collision Detection in Interactive 3D Environments
By Gino van den Bergen
Published by Morgan Kaufmann/Elsevier, 2004
The book has a website (click on menu
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
Start on transformations
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
online). Sections 4.1-2 in the textbook.
Rotations specified as a change of coordinate system, and its use in the
viewing transformation. Affine transformations.
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,
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
page on BRDFs for overview and directions. Also, the paper (not
Validation of Analytical BRDF Models (Ngan, Durand, Matusik,
SIGGRAPH 2004) is a nice read with good introductory value. In
particular, it explains
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
photograph of a harbor at night.
Barycentric coordinates and interpolation. Textures
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
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
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
Section 19.1.2. Sections 11.11.5-6. Section 18.2. In the textbook by
Gino van den Bergen: Sections 3.1