Overview

This course provides a hands-on introduction to the fundamentals of computer graphics. You will learn concepts including ray tracing, texturing, and camera models. In the practical assignments, you will apply this knowledge to build your own ray tracer. The course culminates in a rendering competition, where students model a 3D scene and render it with their own renderer, competing to see who can make best artistic use of the tools they have built.

Instructors

Teaching Assistants

Lukas Auer

Tutors

Ben Samuel Dierks
Aron Hanowski
TBD

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 (assignments use C++)
  • Basic knowledge of linear algebra and analysis

Organization

The course (lectures & tutorials) will be organized via CMS.

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

Assignment sheets are posted on CMS. Assignments are mandatory (every single one must be submitted) and part of the final grade. We allow students to submit in groups of two. These groups must be fixed before submitting the first assignment and cannot be changed later on.

Theoretical assignments

Solutions to theoretical assignments must be submitted via CMS as a PDF file. We encourage you to write your solution in Typst (or LaTeX) to avoid loosing points due to readability issues, but we also accept scans of your handwritten solutions.

Programming assignments

We will be using the university’s GitLab for the practical assignments. A SIC account is mandatory for that, so please make sure you can log into yours. Both team members are expected to fully understand all code. This will be enforced via code interviews.

Grading

The final grade 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 bonus 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

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