The lecture and assignments have already started. Therefore, in general, no registration is possible.


This course provides the theoretical and practical foundations for computer graphics. It gives a wide overview of topics, techniques, and approaches used in various aspects of computer graphics with a focus on image synthesis and rendering, including texturing, shading, aliasing, sampling, and many more.

After introducing the two basic algorithms for image synthesis, ray tracing and rasterization, it discusses the physical foundations of ray tracing in greater depth. As part of the practical exercises, the students incrementally build their own ray tracing system, which they will then use to generate a high-quality rendering for the end-of-term rendering competition.

Additionally, on the discretion of the course organizers, an additional BVH speed competition may be held for bonus points.


Teaching Assistants



All lectures and course materials are given in English

Tutoring sessions are also given in English, altough some tutors may be able to help you in another language at their own discretion.


  • Programming experience with C++
  • Basic knowledge of linear algebra and analysis


The course (lectures & tutorials) will be organized using Microsoft Teams.

We decided to not make use of the mailing list this year, instead announcements will be done using Teams as well.

In-person lectures are something we wish to make happen this year, but cannot commit to provide yet. We are currently experimenting with an hybrid approach, with the lecture being broadcast from a lecture hall for students unable to attend.


Each student is assigned a tutor which will be responsible for them during the course. Each tutor hosts a weekly one-hour session answering questions about the next assignments and providing insight into the previous one.

Groups have been composed on Teams. If you are late, please contact Hugo immediately. After the first assignment due date, joining the course will be effectively impossible.

Slot Tutor Location
Monday 16-18 Hugo Devillers Teams
Tuesday 16-18 Philippe Weier Teams
Wednesday 16-18 Miša Korać Teams
Thursday 16-18 Qingqin Hua Teams


This course contains a practical commponent in the form assignments. The assignments are mandatory for passing the course. You may group up with another student for solving the assingments. The assignments will be posted under the course schedule. They include a mix of theoretical and programming exercises.

The paper copies for the theoretical parts of the assignments will be collected at the beginning of the lecture on the due date. The programming parts must instead be sent by email to your respective tutors. You can also send the scans of your paper copy by mail to your tutor if your are unable to attend the lecture.

The code submitted for the programming part of the assignments is required to reproduce the provided reference images, and the submission ought to include the mandatory generated images. The submission should also contain a creative image show-casing all extra-credit features that have been implemented.

The projects are expected to compile and work out of the box on the machines in the CIP-pool students’ lab in order to give the tutors a guarantee that the code will run on machines that both them and the students have access to.


A sample for the final exam is provided here.


Exact weighting can vary, you can refer to previous instances of the course. In all cases, doing the assignments is again not optional.

10% Rendering Competition
0% Mid-term exam
40% Assignments
50% Final exam

Course Schedule

All electronic documents for this lecture are made available exclusively for your studies and must not be forwarded, reproduced, or used in other documents without consent. Individual figures may originate from copyrighted sources even when not explicitly designated as such.

Date Lecture - Instructor Resources
21.10.2021 Introduction
25.10.2021 Introduction to Ray Tracing
28.10.2021 Spatial Index Structures I
01.11.2021 Day off
04.11.2021 Spatial Index Structures II

Important notice: this lecture will be from 12pm sharp to 13

08.11.2021 Transformations
11.11.2021 Light Transport
15.11.2021 Material Models
18.11.2021 Texturing
22.11.2021 Spectral Analysis
25.11.2021 Sampling Theory
29.11.2021 Texture Filtering and Distribution Ray Tracing
02.12.2021 Day off
06.12.2021 Human Vision System
09.12.2021 Color
13.12.2021 Splines I
16.12.2021 Splines II
🎄🎁Christmas break🎁🎄
03.01.2022 Camera Transformation
06.01.2022 Clipping
10.01.2022 Rasterization
13.01.2022 Graphics APIs I
17.01.2022 Graphics APIs II
20.01.2022 Shader Programming
24.01.2022 Volume Rendering
27.01.2022 Wrap-up
25.02.2022 Final Exam

Rendering Competition

The Rendering Competition is a final showcase of how the ray tracing engine that was developed throughout the course can be used to render interesting images.

You can lean more and check out the results of the previous iteration here


The course does not follow a particular book, but suggested readings include:

  • Matt Pharr and Greg Humphreys, Physically Based Rendering, 3rd Edition, Morgan Kaufmann, 2016 (available online)
  • Peter Shirley, Fundamentals of Computer Graphics, 4th Edition, AK Peters, 2015 (available online)
  • John Hughes et al., Computer Graphics: Principles and Practice, 3rd Edition, Addison-Wesley, 2013
  • Andrew S. Glassner, An Introduction to Ray Tracing, 1st Edition, Morgan Kaufmann, 1989 (available online)

Some articles on acceleration structures:

Possible Follow-Ups

SoPra, HiWi-Jobs, Diploma, Bachelor and Master’s Thesis


We would be happy if we could create a pleasant lecture environment despite the current situation. Personal interactions, with your microphone and camera switched on, may contribute to this environment. We also encourage you to ask questions verbally. Note that this is voluntary. You may switch off both your camera and your microphone, and register under a pseudonym. Questions are still possible, in particular using the chat function.

We have decided to use Zoom as a videoconferencing service. Note that this provider (Zoom Video Communications, Inc., 55 Almaden Blvd, Suite 600, San Jose, CA 95113, USA) can access all data that you provide when registering for the video conference. If you do not provide personal data during the registration, there is still a possibility that Zoom identifies you using your IP address. We would not have decided to use Zoom if we considered this as a significant risk. As an additional precaution, we have opted to use European computing centers. Should you still have privacy concerns (and are not using an Internet Service Provider that cannot map IP addresses to your name), we suggest using an anonymization service such as Tor (

You can find Zoom’s complete privacy policy at: