2012/2013, 4th quarter, time slot B [CS site | OSIRIS]
INFOGR: Graphics
Wolfgang Hürst (WWWEmail),

Home | Schedule | Lecture | Tutorials | Practicals (forum) | Exams & grading

In most weeks, there will be two lectures - one on Tue, 9h-10h45, and one on Thu, 13h15-15h. Please refer to the schedule for concrete dates. Lectures will take place in ANDRO-C101. Like in previous years, this course will be recorded. Below you find the slides and recordings of each lecture. Do not rely on the recordings because we cannot guarantee to maintain this service throughout the whole semester (i.e. if for whatever reason we are not able to offer a recording for a particular talk, don't come complaining!). Also, do not use them as an excuse to skip lectures. We will be covering a lot of material in this course, and getting behind will most certainly cause problems for you when preparing for the exams. You can also find the recordings on YouTube and Vimeo


  • 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.1-2.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 31-33).
      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.1-2.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/line-object 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.5-2.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/ray-object 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 spiral-shaped 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 Z-BUFFER (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 169-173. 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). Z-buffering 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 Z-buffer 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 z-Buffering 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.3-4.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 ojbect-oriented design of a ray tracer, because it is more on implementation related-issues 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.1-10.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.

(c) Wolfgang Hürst