This is a course on Path Tracing, a technique to render realistic images. It is a shortened version of a course I taught at the University of Siegen in 2022.

This course is suitable for self-study. Its concept is to implement a path tracer from scratch step by step along with the course chapters that explain the concepts. Read the slides, work through the tutorial, enjoy!

In particular, this course is about unidirectional Monte Carlo Path Tracing. At the end of the course, you will have built your own path tracer with support for loading scenes in OBJ format, textures, materials, transformations and animations, and Monte Carlo techniques such as Russian Roulette and Multiple Importance Sampling.

All course materials use the MIT license, with the exception of a few third-party illustrations and images which are clearly marked in the course slides. Most of the illustrations in PDF format can be edited or exported to other formats using the the IPE editor.

The source for all this is hosted on git.marlam.de, see the web frontend.
$ git clone https://git.marlam.de/git/path-tracing.git
A mirror is available at github.com/marlam/path-tracing-mirror.