
INTRODUCTION
(Lecture 1, Tue, Apr 23):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
This lecture gave a high level introduction to computer graphics and things we will cover in more detail throughout the course. Hence, there's not much to read in the book yet. Chapter 1 gives a general introduction and is worth skimming. Chapter 3 will not be covered in the lecture, but if you are interested in this topic ("Raster images"), it is worth reading. Checking the beginning of chapter 3.2 might come in handy though when doing one of the exercises on the 1st tutorial sheets. Some of the things that I said about the graphics pipeline are taken from the first two pages of chapter 8 ("The Graphics Pipeline"), but we will discuss it later in more detail, so there's no real need to read that yet. For now, it is mostly important that you get a rough understanding of the general overall procedure, since this will help you when doing the practical assignments.
For people working with the 2nd edition of the book:
Chapter 1 pretty much stayed the same and is thus worth reading. Chapter 3 in the 3rd edition contains some new information but it won't be covered in the lecture anyhow. Chapter 8 in edition 3 also changed, but is not needed yet (I let you know where you find the related info in your book when we discuss its content in one of the upcoming lectures).

VECTORS AND CURVES
(Lecture 2, Thu, Apr 25):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
Chapter 2 till 2.5 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. I introduced sin/cos in the lecture, talked about Pythagoras, and will use the formula to solve quadratic equations in a future lecture. If you have problems with this basic math knowledge, it's a good idea to read these chapters. Most parts of chapter 2.4 have been covered, but since vectors are so important in graphics, it's a good idea to read everything carefully. The same goes for chapter 2.5. Parts of it have been discussed in this lecture, and we will address most of the rest in the next one. You can skip the stuff about the 2D gradient though (page 3133).
For people working with the 2nd edition of the book:
There are some small changes to chapter 2, but the core stayed the same. So, what is said above counts for the 2nd edition as well: 2.12.3 are not covered directly, but strongly recommended reading. So far, we covered chapter 2.5 and will continue with 2.6 in the next lecture. You can skip 2.5.1 (which is "the stuff about the 2D gradient" in your book).

CURVES, SURFACES, AND SHADING
(Lecture 3, Thu, May 2):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
In this lecture we basically finished up the open parts of chapter 2.5 (again, not all details are covered
in the lecture, and some things have been done slightly different in the course). Triangles are covered in
chapter 2.7. Chapter 2.6 (linear interpolation) will be covered in one of the future lectures. Ray/lineobject
intersection can be found in chapter 4.4. Notice, that there are some differences (esp. the parts on page 78/79
about linear systems, that are actually not introduced before chapter 5 and will be discussed in a later
lecture; so don't worry if you don't understand them yet). The simplified shading model is described in chapter
4.5. Notice that I used some different terminology every now and then (e.g. "eye vector" instead of "viewing
vector"). The reason for this is that the book is also not consistent and uses different terms in chapter 4
than in chapter 10 where shading is discussed in more detail.
For people working with the 2nd edition of the book:
The parts from 2.5 in the new edition are covered in chapter 2.52.9 in the 2nd one. Triangles are described in
2.11. The part about linear interpolation that we'll be addressing later is in chapter 2.10 in your book.
Line/rayobject intersection can be found in 10.3 (refer to the comments above; in your case it actually
makes sense to use linear systems, because in your book they have been introduced in an earlier chapter; but
since we haven't covered them in the lecture yet, you'll probably won't understand this, which is fine for
now, since we will be discussing linear systems later on. Unfortunately, the simple shading model is not
directly described in your book. However, if you browse chapter 9.1 and 9.2 and have a look at the related
slides, you shouldn't have much of a problem understanding it.

Additional material:
Animation of a spiralshaped curve in 3D
(by Steven van Rossum, a pervious student of this course).

MATRICES AND DETERMINANTS
(Lecture 4, Tue, May 07):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
Most of this lecture is covered in chapter 5 of the book. I did a few things different,
but it is a good idea to read it anyhow, because looking at something from a different perspective is often
also helpful in understanding the original point of view. I didn't cover section 5.4 about Eigenvalues and
diagonalization, so you can skip that  or read it if the lecture's content wasn't challenging enough
and you want to learn more :)
For people working with the 2nd edition of the book:
In your book, the content of this lecture is covered in chapter 5 as well. There are minor changes (including
order and structuring) but nothing critical. The parts that I skipped in the lecture (and that are not relevant
for this course) are 5.2.6 and 5.2.7 (cf. comments above).

LINEAR AND AFFINE TRANSFORMATIONS
(Lecture 5, Tue, May 14):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
You find linear and affine transformations in chapter 6 of the book. Section 6.1.6 may be skipped.
Information on how to construct a basis from a single vector can be found in section 2.4.6.
I didn't cover everything from the book in detail and also talked about a few things that are not
mentioned in the book at all or did them in a slightly different way. But reading it should be helpful anyhow.
For people working with the 2nd edition of the book:
This time it's easy: same chapters and comments as above :)

TEXTURE MAPPING
(Lecture 6, Thu, May 16):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download
[MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download
[MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
Linear interpolation is discussed in chapter 2.6.
Texture mapping is covered by chapter 11 of the book. You can skip chapter 11.1.4 "Turbulance" (aka Octaves), 11.3.1 "Perspective Correct Textures", and 11.7 "Shadow Maps". (Note: If you are interested in reading more about perspective correct textures, go to the book's web page and download a revised version of chapter 11.3.1.) 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. People who felt lost when I described Perlin noise and who don't understand the part in the book on this either are encouraged to check Matt Zucker's "Perlin noise math FAQ". People who felt bored might consider reading Hugo Elias's Perlin Noise page or the info provided by the master himself ;)
For people working with the 2nd edition of the book:
In the text above, replace chapter 2.6 with 2.10, chapter 11.3.1 with 11.4.1, and chapter 11.7 with 11.8 of your book. Anything else is pretty much the same.

GRAPHICS PIPELINE I: PERSPECTIVE PROJECTION
(Lecture 7, Tue, Jun 4):

Slides:
[ slides ]
[ slides with annotations ]
Typo on slide 33: the 2nd base vector should be "g times u = v".

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
Perspective projection can be found in chapter 7 of the book (but you also find a few words introducing the terminology in section 4.2). I didn't discuss section 7.4 and 7.5. I made a few comments related to the last question in the FAQ list and related to Exercise 5, and looking at the other exercises is also recommended. Notice that they use the notation from the old book here; in edition 3, they use the homogeneous vector (x, y, z, w) to represent the point (x/w, y/w, z/w), whereas in the old book they use (hx, hy, hz, h) and (x, y, z, 1) for this, respectively. It's easy to see that this basically leads to the same thing, but it might be confusing if you don't know about it. Also, be aware of the error in the formula at the bottom of page 152. If you are having difficulties with the representation of vectors in different coordinate systems (or coodinate systems in general), I also recommend reading chapter 6.5.
For people working with the 2nd edition of the book:
You can find perspective projection in the 7th chapter of your book as well (including the 2 chapters 7.4 and 7.5 that I didn't cover in the lecture). There are several changes in the new edition, but most of them are minor. One exception though: in the 3rd edition, they use a different notation for the homogeneous vectors and a different perspective matrix M_p  called P in the 3rd edition. P is a scalar multiple of M_p, i.e. P = nM_p. This doesn't change the overall result because of the way how projective transformation is defined. On the slides, I used the same notation as in the 3rd edition, so don't be confused about the differences.

GRAPHICS PIPELINE II: CLIPPING, CULLING, AND ZBUFFER
(Lecture 8, Tue, Jun 11):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
The content from this lecture can be found in different parts of the book. Clipping is discussed in chapter 8, page 169173. As said, the two algorithms for clipping arbitrary polygones are not in the book, but the slides should be sufficient to understand them. If not, just Google them or look them up in other graphics books. Culling is described in chapter 8.4, but the part on backface culling is very short and not sufficient. You can find the related maths in earlier lectures and chapter 2, of course. The painter's algorithm is described on page 174 (and page 290). Zbuffering is discussed in chapter 8.2.3. We will discuss most of the other things in chapter 8 (mostly rasterization) later on.
For people working with the 2nd edition of the book:
Clipping is described in chapter 12.1 (also cf. above infos about the 2 algorithms not covered by the book). Backface elimination can be found in chapter 12.4, but here it's even less content than in the 3rd edition. Refer to the lecture slides and look up the related maths in section 2 if you have problems understanding it. Volume culling is covered by section 12.3.1. Info about the painter's algorithm and Zbuffer can be found on page 178 and in chapter 8.2, respectively.

GRAPHICS PIPELINE III: RASTERIZATION AND SHADING
(Lecture 9, Thu, Jun 13):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download
[MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
This lecture is mostly covered by chapter 8 and 10 of the book. I discussed rasterization in a different way than they do in the book, but if you read the related chapters (8.1.1 and 8.1.2) carefully, you'll notice that it follows a similar idea. Applying the scanline algorithm to zBuffering is not in the book, but should be easy to understand if you understood the basic idea of linear interpolation (e.g. for coloring). Gouraud interpolation is mentioned in chapter 8.1.2 but again, I did it slightly different. Diffuse shading and Phong shading are discussed in chapter 10.1 and 10.2. In this context you might also want to have a look at chapter 4.5 again that discusses the simple shading model.
For people working with the 2nd edition of the book:
Chapter 10 of the new book corresponds to chapter 9 of your version. Hence, diffuse shading and Phong shading are discussed in chapter 9.1 and 9.2. In this context you might want to have a look at the lecture notes of lecture 3 again where we discussed the simple shading model. Chapter 8 in the 3rd edition is new, but the related info on rasterization (8.1.1 and 8.1.2 in the new book) can be found in chapter 3.5 of your edition. Notice that I did it differently in the lecture, so this is recommended but not mandatory reading.

RADIOSITY & SHADOWS
(Lecture 10, Tue, Jun 18):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download
[MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
Radiosity is hardly covered in the textbook (chapter 24.1 discusses it but in a different way than we did in the lecture). However, the lecture notes and this tutorial should be enough to understand the basic concepts. In addition, you can browse the Education Slide Set provided on the SIGGRAPH server. The same goes for Shadows, i.e. they are hardly covered in the textbook (although you find some information on shadow maps and soft shadows in chapter 11.7 and 13.4.2, respectively). For the exam, the content from the lecture notes and tutorials is sufficient. If you are interested in further information, the stencil buffer tutorial is recommended background reading. It also covers fake shadows in section 4 and 5 and contains little info on soft shadows in section 6.4.
For people working with the 2nd edition of the book:
Just replace chapter "24.1" with "23.1", chapter "11.7" with "11.8", and chapter "13.4.2" with "10.11.2" in the text above.

RAY TRACING I
(Lecture 11, Thu, Jun 20):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
Part 1:
download [MP4]
& streaming
[YouTube,
Vimeo]
Part 2:
download [MP4]
& streaming
[YouTube,
Vimeo]
Video clips removed from the recordings (due to copyright issues):
1. Monsters University Teaser  Pony
2. DISNEY INFINITY: Monsters University Play Set Trailer

Recommended reading:
Ray tracing is covered in chapter 4 and 13 of the book. In this lecture, I covered section 4.1, 4.34.8, and 13.1. I skipped 4.2 on perspective, because we already discussed this in relation to perspective projection. I also left out 4.6.1 on ojbectoriented design of a ray tracer, because it is more on implementation relatedissues than on algorithms, and didn't cover 4.5 in detail because again, we already discussed this earlier. Instancing and CSG is covered in chapter 13.2 and 13.3, respectively.
For people working with the 2nd edition of the book:
In your book, the stuff that was covered in this lecture can be found in chapter 10.110.7. Notice that chapters 4.2 and 4.5 from the 3rd edition are not in your book, but that's exactly the material that we already discussed earlier anyhow (cf. comments above). Notice that some of the notation used in 10.2 in your book is different than the one used in the new edition (and thus the one that I used on the slides). But if you look at it carefully, you should be able to understand both versions. Chapter 10.4.1 was not covered in the course and can be skipped. Instancing and CSG are covered in chapters 10.8 and 10.10.

RAY TRACING II
(Lecture 12, Tue, Jun 25):

Slides:
[ slides ]
[ slides with annotations ]

Recordings:
download [MP4]
& streaming
[YouTube,
Vimeo]

Recommended reading:
The techniques used for faster ray tracing can be found in chapter 12.3. Especially at the end, I did things a little different, but the lecture notes and tutorials should be sufficient to understand it.
For people working with the 2nd edition of the book:
Faster ray tracing is covered in chapter 10.9. At the end, I did things a little different than in the book, but the lecture notes and tutorials should be sufficient to understand it.
