Course information 2025/2026
| Lectures: | Wednesdays, 12:20 – 13:50, room S8 | Contact: Tomáš Iser |
| Practicals: | Tuesdays, 14:00 – 15:30, room SU2 | Contact: Tomáš Iser, Darryl Gouder |
Please note: For the 2025/2026 course, we have prepared new content and completely new homeworks. Be cautious when looking at the archived materials from previous years.
Lecture content
Slides and course notes will be updated troughout the semester.
Date |
Topic |
Slides & Notes |
| 1 October | Introduction to the course Basic explanation of terminology such as rasterization, ray casting, ray tracing, path tracing, ray marching, meshes, solids, surfaces, volumes, signed distance fields, shading, etc. |
Slides with notes |
| 8 October | Reflection equation and radiometry Photon model and wave model, power (flux), radiant intensity, irradiance, radiance, inverse square law, Lambert’s cosine law |
Slides with notes |
| 15 October | Numerical integration Numerical quadrature, Monte Carlo, properties of a Monte Carlo estimator, random sampling (more math exercises and proofs during the labs on 14 October) |
Slides with notes Blackboard photos: (1), (2) |
| 22 October | Monte Carlo in rendering and importance sampling Using Monte Carlo in ray tracing, random sampling, importance sampling; example of importance sampling a diffuse and specular lobe of a BRDF |
Slides with notes |
| 29 October | Monte Carlo in rendering and importance sampling — continued Importance sampling an environment map and area lights; a bit on control variates and stratification Multiple importance sampling (MIS) Motivation of MIS, formula, balance heuristic, example with BRDF/envmap |
MIS slides |
| 5 November | Plan: Multiple importance sampling (MIS) — continued Example with BRDF/area lights, examples of other heuristics (cutoff, power, maximum) Building a path tracer Constructing the rendering equation, the operator form, Neumann series, recursion, implementation with a for loop (with a fixed path length → bias) |
|
| canceled (Děkanský sportovní den / Dean’s Sports Day) | ||
| 19 November | Plan: Building a path tracer — continued Implementation with a while loop (using Russian roulette → unbiased), the principles of: 1) adjoint-driven Russian roulette & splitting, 2) path guiding, 3) next event estimation (NEE), NEE with multiple light sources (“many-light methods”) |
|
| 26 November | Plan: Volumetric light transport and participating media |
|
| 3 December | Plan: Bidirectional path tracing (BDPT), photon mapping (PM) |
|
| 10 December | Plan: Radiance fields, Gaussian splatting |
|
| canceled (conference in Hong Kong) | ||
| 7 January | Plan: Inverse and differentiable rendering |
Practicals / labs content
Date |
Topic |
Slides & Notes |
| canceled (before the 1st lecture) | ||
| 7 October | Introduction to Blender Homework assignment 1 (10 points + max 3 bonus points) Math exercises (radiometry): solid angle, spherical coordinate system, integrals in spherical coordinates, differential solid angle, differential area |
Whiteboard photos: (1) |
| 14 October | Introduction to random sampling Math exercises: expected value, variance, probability distribution function, cumulative distribution function, normalization, random sampling in 1D, multidimensional random sampling |
Whiteboard photos: (1), (2), (3), (4), (5) |
| 21 October | Assignment 1 deadline + student presentations (5 minutes / student) | |
| canceled (bank holidays) | ||
| 4 November | Homework assignment 2.1 “Monte Carlo Sampling and Ambient Occlusion” (10 points + max 2 bonus points) | |
| 11 November | Online consultation with Darryl | |
| 18 November | Assignment 2.1 deadline Homework assignment 2.2 “Distribution and Whitted-style Ray Tracing” (10 points + max 2 bonus points) |
|
| 25 November | Online consultation with Darryl (*time zone difference) | |
| 2 December | Assignment 2.2 deadline Homework assignment 2.3 “Path Tracing, Microfacet Models, and Multiple Importance Sampling” (*time zone difference) (10 points + max 2.5 bonus points) |
|
| 9 December | Online consultation with Darryl (*time zone difference) | |
| 16 December | Online consultation with Darryl (*time zone difference) | |
| 6 January | Assignment 2.3 deadline |
Assignment 1 (“Creative exercise”)
Deadline: 21 October 2025 14:00
In this course, we focus on writing algorithms for photorealistic rendering. But what use is it to know an algorithm if you cannot even create your own 3D scene? That is why our first assignment is and has traditionally been to create and render a 3D scene.
If you are not familiar with any 3D editing and rendering software, I recommend to use Blender, which is free and comes with a built-in path tracer called Cycles. Students can use any other 3D editing software (e.g., Autodesk 3ds Max) and any other renderer which uses path tracing (e.g., Autodesk Arnold). Please do not use renderers that are primarily based on rasterization, such as Unreal or Unity.
Your goal is to create and render a 3D scene and satisfy the following requirements:
- The scene must use at least 6 very different materials
(e.g., glass, plastic, wood, concrete, liquid, fabric, metal) - At least one of the materials must have subsurface scattering
- The scene must use at least the following light sources:
- Environment map / HDRI
- Area light (e.g., a rectangle)
- You have to render the scene multiple times, split into the following components:
- Direct vs. indirect illumination
- Diffuse vs. specular (or glossy) reflections
- You must demonstrate the use of denoising:
- Render the scene once without denoising, with a very low sample count to get a noisy render
- Render the scene once without denoising, with a very high sample count to get a smooth, converged render
- Render the scene once with a very low sample count and with denoising enabled
Prepare a presentation (5 minutes) with the images and describe what we can see on them. Also explain your motivation behind the scene that you modeled.
You can use free resources that you download on the internet, such as textures, environment maps, meshes, and so on. You cannot download the entire scene though as the point of the exercise is for you to try to at least insert and transform the objects into a scene, apply materials on them, position a camera, etc.
This is an individual exercise and you should not work in a team.
Assignments 2.1 – 2.3 (“Programming exercises”)
In the set of Assignments 2.1 – 2.3, you will write C++ code to perform Monte Carlo ray tracing and path tracing. With the kind permission of Wenzel Jakob from EPFL in Switzerland, we will use the Nori framework and the Nori exercises in our course. That way you will learn how a codebase of a full renderer looks and how a path tracer actually works when implemented in C++.
More details coming soon.
Archive
Course information for the previous academic years: