This course page describes the lecture of Sommersemester 2021. See list of other semesters.

Lecture Announcements

Registration and course data is available on the TISS site.

Communication with students, Q&A sessions, and some extra material is provided through our TUWEL site! It'll be updated throughout the semester.

During COVID, we have a weekly Zoom meeting that's available through TUWEL as well.


  • 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. And finally, we will teach a bit about HDR, tone mapping, measuring error, and other rendering pipeline details.

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.

Schedule, Contents and Lecture Slides

The course will be purely virtual, with slides published here and lecture videos on YouTube. We will have regular Zoom meetings where you can ask questions. All this will be announced through TUWEL in time.

  1. Introduction (Bernhard)
    Organization and how to take this course
  2. Light (Adam)
    Radiance, irradiance, solid angle, white furnace test
  3. Monte Carlo Integration (Adam)
    How to estimate the solution of highly dimensional integrals
  4. Rendering Equation (Adam)
    Recursive formulation of the rendering equation
  5. Path Tracing Basics (Bernhard)
    The basic algorithm using Russian Roulette
  6. Spatial Acceleration Structures (Bernhard)
    BVH, K-d tree, surface area heuristic (SAH)
  7. History of Monte Carlo (Hamed)
    Bonus historical background for Monte Carlo methods
  8. Importance Sampling (Bernhard)
    Hemisphere sampling, Importance sampling, transform sampling distributions
  9. Multiple Importance Sampling (Adam)
    How to reduce Variance of the estimator
  10. Next Event Estimation (NEE) (Bernhard)
    Revisiting the light source sampling approach
  11. Materials 1 (Bernhard)
    B*DFs, Fresnel, Snell's law, Dielectrics
  12. Accessories (Adam)
    Sampling theorem and filtering, parallelisation, HDR, tone-mapping, measuring error and sampling patterns

The schedule changed from the 2020S iteration (virtual as well), and therefore we will redo the slides and lectures. You can take a look at the old slides and videos.

Assignments and Grading

We use our own internal Gitlab submission system. Our philosophy in this course will be to make it possible to pass with a good grade within the workload of 3 ECTS (75 hours), while also allowing for very in-depth exploration of the topic (that is, you could probably spend months of full-time work if you are very motivated ;).

We plan 4 assignments throughout the semester. Each of them will be graded in a submission talk. We will also have an oral exam, which will be optional in case you have enough bonus points.

  1. Framework Download and Setup: Get to Know Nori
    Due: 31 March
  2. Monte Carlo Integration: Ambient Occlusion, Direct Light, Simple Path Tracing
    Due: 18 April
  3. Ray Tracing Acceleration Data Structures and Performance Competition
    Due: 14 May
  4. Sampling: Sample Warping, Importance Sampling, Multiple Importance Sampling
    Preliminary due: 2 June
  5. Materials and Scene/Bonus-Task Competition
    Preliminary due: 2 July
Winning one of the contests won't give you a better grade, but we will definitely take note and might find you an interesting project or master thesis topic.

Further Reading