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
Julian Tonner
TBD
TBD

Pre-requisites

  • Programming experience (assignments use C++)
  • Basic knowledge of linear algebra and analysis

Organization

The course (lectures & tutorials) will be organized via CMS: https://cms.sic.saarland/cg_25/

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.

Format

The first half of the course (until the winter break) follows a non-standard format:

  • The course is split into blocks, each lasting two weeks
  • Each block comprises
    • two lectures (Monday and Thursday of the first week),
    • a practical assignment (graded),
    • a reading assignment, and
    • a mini-test (mandatory but ungraded)
  • During the first week of each block:
    • Monday, 10:15: lecture, practical assignments released
    • Thursday, 08:30: lecture, reading assignment released
    • Throughout the week: code interviews with your tutor about the previous assignment (mandatory)
  • During the second week of each block:
    • Monday, 10:15: mini-test, solutions for test and previous assignment are discussed, office hour
    • Thursday, 08:30: office hour
    • Sunday, 23:59: practical assignment deadline

In the second half, starting January, there are lectures every Monday and Thursday.

Precise dates can be found in the schedule below and in the calendar on CMS.

Tutorials, code interviews, and office hours

Each student is assigned a tutor who will be responsible for them during the course. However, instead of traditional tutorials,

  • Tutors sit down individually with each group (for 10-15 min every second week) to discuss their practical assignments in a code interview. Attendance is mandatory.
  • Multiple office hours are offered for further questions in the second week.

Practical Assignments

Assignments are posted on CMS every second week. 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.

Both team members are expected to fully understand all code. If, during code interviews, the tutor repeatedly notices that a student does not understand the submitted solution, further measures might be taken to ensure fair grading.

Mini-tests

Mandatory mini-tests are held every second Monday in the lecture hall. While these tests are not graded, students must submit a solution for every test to be admitted to the exam. In justified cases, we allow students to submit test solutions via email to their tutor instead. Justifications include medical reasons and schedule conflicts. Students must notify their tutor and provide proof at least one week before the test.

Project and rendering competition

After the last practical assignment, you will work on the project and rendering competition. Both are mandatory and graded.

In the project, you extend your renderer by additional features of your choice. By implementing more features than required, you can obtain bonus points (with a soft-max limit).

With the rendering competition, you will show that not only do you know how to write a renderer, but also how to use it to render an appealing, original scene. The competition will be graded based on completeness (creation of an original scene, rendering it, presentation via a webpage that describes the idea and methodology) and bonus points will be awarded to the top-ranking submissions (based on artistic merit as judged by a jury).

Grading

The final grade is computed as follows:

  • 20% Project (minimum 50% to pass)
  • 30% 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
13.10.2025

No lecture (semester kickoff)

16.10.2025

Introduction

Pascal Grittmann

20.10.2025

Ray tracing I

Pascal Grittmann

23.10.2025

Ray tracing II

Pascal Grittmann

27.10.2025

Mini test

30.10.2025

Office hour

03.11.2025

The rendering equation

Pascal Grittmann

06.11.2025

Monte Carlo path tracing

Pascal Grittmann

10.11.2026

Mini test

13.11.2025

Office hour

17.11.2025

Vertex attributes and textures

Pascal Grittmann

20.11.2025

Material models

Pascal Grittmann

24.11.2025

Mini test

27.11.2025

Office hour

01.12.2025

Color and HDR

Pascal Grittmann

04.12.2025

Volume rendering

Pascal Grittmann

08.12.2025

Mini test

11.12.2025

Office hour

15.12.2025

Rendering competition

Pascal Grittmann

18.12.2025

No lecture

22.12.2025

No lecture

Break

25.12.2025

No lecture

Break

29.12.2025

No lecture

Break

01.12.2026

No lecture

Break

05.01.2026

No lecture

08.01.2026

Splines

Philipp Slusallek

12.01.2026

Subdivision surfaces

Philipp Slusallek

15.01.2026

Camera Transformation and Clipping

Philipp Slusallek

19.01.2026

Rasterization

Philipp Slusallek

22.01.2026

Graphics APIs

Philipp Slusallek

26.01.2026

Shader Programming

Philipp Slusallek

29.01.2026

Shadow Alogrithms

Philipp Slusallek

02.02.2026

Rendering competition awards

Pascal Grittmann & Philipp Slusallek

05.02.2026

No lecture

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