Details
Adam Celarek, Manfred Klaffenböck, Lukas Lipp, Annalena Ulschmid, Torsten Moeller, Michael Wimmer
Hot Links
The course homepage is work in progress, expect changes!
Properties
- Semester hours: 2.0
- Credits: 3.0
- Type: VU Lecture and Exercise
Aim of the Course
This course will teach you how to write a physically correct and unbiased renderer based on the path tracing algorithm.
In the beginning, you will learn about the physics and math of light transport. Closely connected is the rendering equation, a high-dimensional integral describing the equilibrium of photons in a scene. We will then show you how to compute such integrals using Monte Carlo methods and to apply this new knowledge to implement the recursive path-tracing algorithm. At this point, you will have an understanding of how rendering works, but a lot remains to be learned: The asymptotic complexity of ray-tracing can be reduced by using acceleration data structures, enabling the program to deal with scenes that consist of more than just a dozen triangles. Materials like plastic, glass, metal, paint, and skin have properties that need special considerations during implementation. We will also cover HDR, tone mapping, measuring error, and other rendering pipeline details. On top of all that, you will learn about differentiable rendering, which can be used to optimise scene parameters like light sources and geometry.
In addition to path tracing, we cover some other biased and unbiased rendering algorithms like photon mapping and radiosity.
The exercises will give you an understanding of the principles of Monte Carlo Integration, the rendering equation, optimization techniques, and material modelling. There will be many bonus tasks for interested students. We will also have a performance and a scene/bonus-task competition.
Administrative stuff
Registration and course data is available on the TISS site.
Communication will happen through TUWEL (all more or less official stuff) and Discord (optional). There is no excuse for not reading TUWEL announcements, and you should receive notification mails. Accounts for Uni Wien students will be created in time.
This year we will again hold the lecture together with Uni Wien. Before this 2026, Uni Wien had an 6 ECTS lecture and TU Wien a 3 ECTS one, with optional +3 ECTS tasks. Starting 2026S both lectures are worth 6 ECTS, and there are additional topics.
There will be several assignments, where you will gradually complete your own renderer. You can do the minimum or decide to implement more, learn more, and hopefully enjoy more. Uni Wien students will use our submission system, our TUWEL / Moodle,
Please go to the first lecture for more details.
Schedule, Contents and Lecture Slides (WIP!)
The lecture slides are linked below the table. You can also look at the lecture from several years ago on YouTube. However, the lecture changed, we have more and different content now. Looking at the YouTube videos is not sufficient.
| Date | Tuesday | Thursday | |
|---|---|---|---|
| 3-Mar | 5-Mar | Introduction (AC) + Light (AC) | Overview + Radiometry Basics (MK) |
| 10-Mar | 12-Mar | Rendering Equation (AC) | Image Pipeline (MK) |
| 17-Mar | 19-Mar | Monte Carlo Integration (AC) | Framework Introduction / FAQ (YE) |
| Deadline | 23-Mar | Assignment 0: Setting up Nori | |
| 24-Mar | 26-Mar | Path Tracing Basics (AC) | Biased Rendering Algorithms (MK) |
| 31-Mar | 2-Apr | University Holiday | |
| 7-Apr | 10-Apr | University Holiday | |
| Deadline | 13-Apr | Assignment 1: Path Tracing | |
| 14-Apr | 16-Apr | Spatial Acceleration Structures (AC) | Biased Rendering Algorithms (MK) |
| 21-Apr | 23-Apr | Importance Sampling (JCR?) | Uniform / Non-uniform Sampling (MK) |
| 28-Apr | 30-Apr | Materials, MIS / Next Event Estimation (AC) | Reflectance Function (MK) |
| 5-May | 7-May | Accessories (AC) | Radiosity (MK) |
| Deadline | 11-May | Assignment 2: BVH Building & Traversal (Performance Competition) | |
| 12-May | 14-May | Performance competition: results and discussion Differentiable Rendering 1 (AC) | University Holiday |
| 19-May | 21-May | Differentiable Rendering 2 (LL) | Recap (MK) |
| 26-May | 28-May | University Holiday | Final (MK) |
| Deadline | 8-Jun | Assignment 3: Materials and Importance Sampling | |
| 2-Jun | 4-Jun | Participating Media (AU) | University Holiday |
| 9-Jun | 11-Jun | Bi-directional PT, Metropolis Light Transport (maybe) | |
| 16-Jun | 18-Jun | ||
| Deadline | 22-Jun | Final Project | |
| 23-Jun | 25-Jun | Presentation of the final project, coffee and cake (compulsory attendance) | |
| Deadline | 30-Sep | Final Exam | |
Assignments and a subset of the lecture slides is public (here), all slides are available on TUWEL.
Policy on LLMs and academic honesty
We recommend not to use them for the programming tasks. Yes they make your life easier, but no, you will not learn as much. In particular, they will likely work for basic tasks, but maybe fail on the more advanced stuff. And the thing is, if you don't do the basic stuff yourself, you will not know how to develop and debug the advanced stuff.
Also, DO NOT CHEAT!
It's perfectly fine to discuss the assignments and help each other (ideally on discord / TUWEL), but please don't post or copy any code. Similarly to LLMs, it'll likely work, but it'll destroy your learning experience. And, if you get caught cheating, this will be noted in you transcript of records.
If source code (to enhance) or other material from the WWW is used, it should be acknowledged and a priori permission must be sought. Taking source code (or text/math) from a peer, the WWW, or a book to complete a lab makes you culpable of plagiarism! Please note, that it is of course also not okay to copy large parts or even the whole code from somewhere else, even though you acknowledged it. This is like copying and pasting a book, putting your name on the cover, and hoping that nobody will find the fine-prints saying that it is actually from somebody else. If unclear, please talk to us before the submission. Justifications in hindsight are not possible.
Some examples of things that are not okay and considered cheating:
- Give code (or text/math) to another student
- Give screenshot of code (or text/math) to another student
- Copy code (or text/math) from somebody else
- Copy code (or text/math) from the WWW without our explicit permission
- Create code (or text/math) for others
- Let other people create code (or text/math) for yourself
Further Reading
- Previous rendering course from this university,
by Károly Zsolnai-Fehér. - Robust Monte Carlo Methods for Light Transport Simulation,
PhD thesis by Eric Veach,
one of the most influential works in this domain. - Physically Based Rendering, Third Edition: From Theory To Implementation,
Matt Pharr, Wenzel Jakob, and Greg Humphreys,
The bible of physically based rendering (referred to as PBRT). - Course on Monte-Carlo Methods in Global Illumination, by L. Szirmay-Kalos
A free course script that gives a detailed explanation of the mathematical foundations of Global Illumination.