Graphics: lectures
Site Navigation 
Schedule (lectures)Tue, Nov 13: Introduction and ray tracing basicsThu, Nov 15: Vectors and curves Tue, Nov 20: Curves, surfaces, and shading Thu, Nov 22: Matrices Tue, Nov 27: Linear and affine transformations Thu, Nov 29: Perspective projection Tue, Dec 4: Hidden surface elimination Thu, Dec 6: Triangle rasterization Tue, Dec 11: No lecture Thu, Dec 13: Midterm Exam Tue, Dec 18: Ray tracing: data structures and loose ends Thu, Dec 20: No lecture [Dec 24  Jan 6: Xmas break, no lectures] Tue, Jan 8: Texture mapping Thu, Jan 10: A full graphics pipeline Tue, Jan 15: Radiosity Thu, Jan 17: Shadows and closing comments Tue, Jan 22: No lecture Thu, Jan 24: No lecture Thu, Jan 31: Final Exam 
Lecture notes
Below you find the slides and recordings of each lecture. Recordings are in QuickTime format and come in two resolutions: 640x480 for viewing on desktops and laptops and 320x240 which contain the same content but have been optimized for viewing on mobile devices such as the Apple iPod (hence the bigger data size). For the latter ones, there is also a blog where you can subscribe to an RSS feed or via iTunes in order to download the recordings (lower resolution) automatically to your iPod. Note: The blog is just for subscription but does not contain any additional material.
Lecture 1 (Tue, Nov 13): Introduction and ray tracing basics
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (11.8MB) ] [ 320x240 (29.9MB) ], Part 2 [ quicktime 640x480 (8.4MB) ] [ 320x240 (21.2MB) ]
 Recommended reading: Chapter 1 from the book gives a general introduction. Chapter 3.1 till 3.3 are not covered in the lecture directly, but worth reading in order to get more familiar with the topic and related terms. For the programming labs it might be worth browsing Chapter 10 till 10.3.1 (don't worry if you don't understand all details yet, but it might help understanding the basic ideas if you have a rough look at it).

Lecture 2 (Thu, Nov 15): Vectors and curves
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (25.7MB) ] [ 320x240 (52.1MB) ], Part 2 [ quicktime 640x480 (17.6MB) ] [ 320x240 (40.6MB) ]
 Recommended reading: Chapter 2 till 2.6 from the book. (Note: Chapters 2.12.3 are not discussed in the lecture directly, but we assume that you are familiar with the content).

Lecture 3 (Tue, Nov 20): Curves, surfaces, and shading
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (16.1MB) ] [ 320x240 (42.8MB) ], Part 2 [ quicktime 640x480 (11.1MB) ] [ 320x240 (28.7MB) ]
 Recommended reading: Chapter 2 from the book (esp. 2.72.9 and 2.11). For the ray tracing part, browsing chapter 10 till 10.3 again might be a good idea.

Lecture 4 (Thu, Nov 22): Matrices
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (17.3MB) ] [ 320x240 (46.2MB) ], Part 2 [ quicktime 640x480 (14.1MB) ] [ 320x240 (37.0MB) ]
 Recommended reading: Although the material is presented slightly different in the lecture, it is highly recommended to read chapter 5 of the book, since the basics about matrices, etc. are very important and needed in the following lectures. (But you may skip 5.2.6 and 5.2.7)

Lecture 5 (Tue, Nov 27): Linear and affine transformations
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (21.0MB) ] [ 320x240 (56.5MB) ], Part 2 [ quicktime 640x480 (19.4MB) ] [ 320x240 (49.3MB) ]
 Recommended reading: Chapter 6 (Transformation matrices) from the book. Section 6.1.6 may be skipped.

Lecture 6 (Thu, Nov 29): Perspective projection
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 (11.8MB) ] [ 320x240 (30.4MB) ], Part 2 [ quicktime 640x480 (11.5MB) ] [ 320x240 (32.8MB) ]
 Recommended reading: Chapter 7 (Viewing) from the textbook.

Lecture 7 (Tue, Dec 4): Hidden Surface Eliminiation
 Slides: [ slides ] [ slides with annotations ]
 Recordings: Part 1 [ quicktime 640x480 (16.9MB) ] [ 320x240 (49.0MB) ], Part 2 [ quicktime 640x480 (15.0MB) ] [ 320x240 (45.7MB) ]
 Recommended reading: This lecture is covered by Chapter 8 (Hidden Surface Elimination) in the textbook.

Lecture 8 (Tue, Dec 6): Triangle rasterization
 Slides: [ slides ] [ slides with annotations ]
 Recordings: Part 1 [ quicktime 640x480 ( 10,2MB) ] [ 320x240 ( 31,3MB) ], Part 2 [ quicktime 640x480 ( 19,1MB) ] [ 320x240 ( 53,6MB) ]
 Recommended reading: In the lecture, we addressed only polygone and triangle rasterization and used a different approach than covered in the book. Nevertheless, it doesn't hurt to browse chapter 3.5 (line drawing) and 3.6 (triangle rasterization). The latter one also contains a little bit of information about Gouraud shading. Linear interpolation is covered in chapter 2.10, diffuse shading and phong shading are discussed in chapter 9.1 and 9.2, respectively.

Lecture 9 (Tue, Dec 18): Ray Tracing
 Slides: [ slides ] [ slides with annotations ]
 Recordings: Part 1 [ quicktime 640x480 ( 12,0MB) ] [ 320x240 ( 34,0MB) ], Part 2 [ quicktime 640x480 ( 10,9MB) ] [ 320x240 ( 31,2MB) ]
 Recommended reading: This lecture basically completes some "loose ends" about Ray Tracing that haven't been covered in the lecture so far, in particular: Ray/triangle intersection (book, section 2.11 and 10.3.2), refraction (book, section 10.7), instancing (book, section 10.8), constructive solid geometry (book, section 10.10), faster ray tracing (book, section 10.9).

Lecture 10 (Tue, Jan 8): Texture Mapping
 Slides: [ slides ] [ slides with annotations ] [ handouts ]
 Recordings: Part 1 [ quicktime 640x480 ( 16,5MB) ] [ 320x240 ( 46,4MB) ], Part 2 [ quicktime 640x480 ( 17,1MB) ] [ 320x240 ( 46,3MB) ]
 Recommended reading: This lecture is covered by chapter 11 of the book. The tutorial on "Teaching Texture Mapping Visually" (PDF, HTML) by Rosalee Wolfe from DePaul University contains some nice illustrations of different approaches. Not all of this is covered in the lecture, but the images might help understanding some of the techniques we discussed.

Lecture 11 (Thu, Jan 10): A full graphics pipeline
 Slides: [ slides ] [ slides with annotations ]
 Recordings: Part 1 [ quicktime 640x480 ( 14,4MB) ] [ 320x240 ( 38,9MB) ], Part 2 [ quicktime 640x480 ( 8,5MB) ] [ 320x240 ( 25,9MB) ]
 Recommended reading: Chapter 12 in the textbook. The SutherlandHodgman and the WeilerAtherton algorithm are not covered in the book, but the lecture notes should be sufficient to understand them.

Lecture 12 (Tue, Jan 15): Radiosity
 Slides: [ website (HTML) ] [ website with annotations (PDF) ] [ slides ] [ slides with annotations ]
 Recordings: Part 1 [ quicktime 640x480 ( 15,1MB) ] [ 320x240 ( 40,0MB) ], Part 2 [ quicktime 640x480 ( 8,9MB) ] [ 320x240 ( 25,1MB) ]
 Recommended reading: Radiosity is hardly covered in the textbook, but the lecture notes and website given above should be enough to understand the basic concepts. In addition, you can browse the Education Slide Set provided on the SIGGRAPH server.

Lecture 13 (Tue, Jan 15): Shadows (part 1) and closing remarks (part 2)
 Slides: [ slides (part 1, shadows)] [ slides with annotations (part 1, shadows)] [ slides (part 2, closing)] [ slides with annotations (part 2, closing)]
 Recordings: Part 1 [ quicktime 640x480 ( 24,6MB) ] [ 320x240 ( 52,4MB) ], Part 2 [ quicktime 640x480 ( 14,0MB) ] [ 320x240 ( 24,7MB) ]
 Recommended reading: Shadows are hardly covered in the textbook (although you find some information on shadow maps and soft shadows in chapter 11.8 and 10.11.2, respectively). The stencil buffer tutorial is recommended background reading (but try to focus on principles, and not on details/code, and don't worry if you don't understand it completely. Browse, don't memorize, the 50 pages). It also covers fake shadows in section 4 and 5 and contains little info on soft shadows in section 6.4.
Interesting links
A Practical Model for Subsurface Light Transport.
An improved illumination model for shaded display (earliest ray tracing paper, by T. Whitted).
A Survey of Geometric Data Structures for Ray Tracing, Y. Chang.
More on Perlin noise, by the master himself
Radiosity page (practical and intuitive explanation)
Radiosity resources (links, papers, software).
Radiosity image (museum interior)
Practical and robust shadow volumes
A survey of realtime soft shadows algorithms
Book coverage (last year!)
Note: The 2nd edition of the book has a new chapter compared to the 1st edition; a new Chapter 4 has been inserted in between Chapter 3 and Chapter 5 (which was Chapter 4 in the 1st edition). So if you use the 1st edition, read k  1 for any chapter number k > 4 in the text below.
Below you find the comments that apply for last year's course (i.e. 2006/2007). See the comments given above ("Recommended reading") for this year's lecture.
 We will not cover the complete book in this course, and some of the material discussed in the lecture can not be found in the book. In the first lectures we will necessarily jump a bit back and forth (ray tracing is covered in the later chapters, but we need some basic knowledge right away because of the programming assignments). Here's what we will do (tentatively; may be subject to change):
 Chapter 1 of the book contains mainly motivation, backgrounds, and practical tips. It is certainly worth reading, but I won't ask any questions about this chapter.
 Chapter 2 is very importantbut not all of it. I consider the first three sections to be prerequisites: we didn't cover this in the lectures, but you should be able to use most of the concepts explained there. In the exams, there won't be any direct questions about 2.12.3. However, I may ask you to compute the intersection of a ray and a sphere, so you have to be able to solve quadratic equations (Section 2.2). Section 2.5.1 (the gradient stuff) may be ignored. Gradients return in Section 2.7.1, but don't worry if you don't understand the formula thereas long as you know what a normal vector is. The topic of Section 2.10 (Linear interpolation) will be discussed when we do Gouraud shading.
 We won't cover Chapter 3 in the lectures, but you should read and understand Sections 3.13.3.
 You may skip Chapter 4 altogether.
 Chapter 5 is very important again. In the lecture, I'll present the material slightly different than the book does; hopefully it is helpful to see it from different perspectives. Sections 5.2.6 and 5.2.7 may be skipped.
 Chapter 6 builds upon the matrix machinery that we studied before to encode linear and affine transformations with matrices. Section 6.1.6 may be skipped.
 Chapter 7 is about projective methods of rendering. It contains some large, scary matrices, but don't bother to memorize these. You should, however, understand how these matrices are derived, and I may ask you to explain one or more steps in some derivation.
 There isn't much to say about Chapters 8 and 9. Simply learn them integrally.
 Most of the material of Chapter 10 will be familiar to you due to the programming assignments, but the theory in the later sections of this chapter has been simplified considerably in the assignments.
 Chapter 11 has some formulas that may look scary on first sight, but if you understand linear interpolation, then bilinear and trilinear interpolation should not pose too many problems; they are straightforward generalizations. Hermite interpolation is very similar, except that the weights are not linear but cubic functions. If you stare a the Perlin noise definitions for a while, you will see that this is just Hermite interpolation in 3D (but in a different notation than on the previous pages), with the added trick of using random vectors, plus some optimization features. The term `octaves' that is mentioned in papers and webpages on Perlin noise refers to the turbulence discussed in Section 10.1.4. You may skip that section. Section 11.4.1 is about perspective correct texturing. You should be able to explain the problem informally, but I won't ask for formulas in the exams.
 Chapter 12 should be learned integrally. We'll discuss two additional clipping algorithms for general polygons in the lectures, and these should be learned as well.
 Everything you need to know about shadows is covered in the lecture notes. The stencil buffer tutorial (see the links further down this page) is recommended background reading (but try to focus on principles, and not on details/code, and don't worry if you don't understand it completely. Browse, don't memorize, the 50 pages).
 As far as Radiosity is concerned: don't memorize the formulas, but make sure you know what the terms in the formulas mean. You should understand the highlevel concepts of radiosity. The topic is hardly covered in the textbook, but the lecture notes should suffice.