Overview

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.

Instructors

Teaching Assistants

Tutors

Lukas Auer
Ben Samuel Dierks
Leonard Butz
Arsenii Dremin
Philipp Ziegler

Language

All lectures and course materials are given in English

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

Pre-requisites

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

Organisation

The course (lectures & tutorials) will be organized using this team in Microsoft Teams. Lectures are given in person only.

Until January (see schedule below for details), the course follows a new format: a “partially-inverted classroom”. Lectures are only on every second Monday. Every other Monday, there is a mandatory mini test, followed by a voluntary Q&A session. There are no lectures on Thursday until January.

Tutorials

Each student is assigned a tutor who will be responsible for them during the course. Each tutor hosts a weekly two-hour session answering questions about the next assignments and providing insight into the previous one. During those tutorials, there will be mandatory code presentations of your work in the previous assignments. This is done to ensure that you have worked on the assignments yourself. So attendance to some of the tutorial sessions will be mandatory

Assignments

This course contains both a practical and a theoretical component in the form of assignments. The assignments are mandatory for passing the course. You may group up with another student for solving the assignments. The assignment sheets will be posted online on our course’s team.

Theoretical assignments

Theoretical assignments are to be submitted up until the due date online on teams, or sent per e-mail to your tutor in case of an issue with the submission system. Only PDF files can be submitted. We encourage you to write your solution in LaTeX to ease the tutor’s correction but we also accepts scans of your hand-written solutions.

Programming assignments

We will be using the university’s GitLab for the programming parts, for which you will need a SIC account. 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.

Grading

The final grade is based on a combination of your performance in practical assignments / projects, and the final exam. It is computed as follows:

  • 15% Rendering Competition
  • 35% Assignments (minimum 50% to pass)
  • 50% Final exam (minimum 50% to pass) Bonus points: You can improve your overall grade by implementing additional features for bouns points.

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
17.10.2024

Introduction

Philipp Slusallek

21.10.2024

Fundamentals of ray tracing

Pascal Grittmann

24.10.2024

no lecture

28.10.2024

Q&A and minitest

Pascal Grittmann

31.10.2024

no lecture

04.11.2024

Light transport basics

Pascal Grittmann

07.11.2024

no lecture

11.11.2024

Q&A and minitest

Pascal Grittmann

14.11.2024

no lecture

18.11.2024

Sampling, materials and volumes

Pascal Grittmann

21.11.2024

no lecture

25.11.2024

Q&A and minitest and volume lecture

Pascal Grittmann

28.11.2024

no lecture

02.12.2024

Displaying images

Pascal Grittmann

05.12.2024

no lecture

09.12.2024

Q&A and minitest

Pascal Grittmann

12.12.2024

no lecture

16.12.2024

no lecture

19.12.2024

no lecture

06.01.2025

Splines

Philipp Slusallek

09.01.2025

Subdivision Surfaces

Philipp Slusallek

13.01.2025

Camera Transformation and Clipping

Philipp Slusallek

16.01.2025

Rasterization

Philipp Slusallek

20.01.2025

Graphics APIs I

Philipp Slusallek

23.01.2025

Graphics APIs II

Philipp Slusallek

27.01.2025

Shader Programming

Philipp Slusallek

30.01.2025

no lecture

03.02.2025

Shadow Algorithms

Philipp Slusallek

06.02.2025

Rendering Competition results

Philipp Slusallek

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 also check out the results of the previous iteration

Literature

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