VU, 186.101, 2020S

Bernhard Kerbl, Adam Celarek

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

Lecture Announcements

Registration and course data is available on the TISS site.


  • 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. You will learn how to accelerate ray-triangle intersection using acceleration structures, the math and physics behind rendering, how to compute high-dimensional integrals using Monte Carlo methods, and how to apply all that to implement the recursive path-tracing algorithm.

We will also introduce other important rendering algorithms like bidirectional path tracing, Metropolis light transport, photon mapping and others. Furthermore we will talk about material models, participating media, HDR/tonemapping and some state-of-the-art papers in the rendering domain.

At the end of the course students should be familiar with common techniques in rendering and find their way around the current state-of-the-art of the field. Furthermore the exercises should deepen the attendees' understanding of the basic principles of light transport and enable them to write a rendering program themselves.

Schedule, Contents and Lecture Slides

Dates will follow, preliminary.

Important update due to COVID-19: For live recordings of the individual lectures, please check out our institute YouTube account here.

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 ;). This is our first iteration however, so there might be some bumps and hick ups :)

We plan 3 assignments throughout the semester. Each of them will be graded in an submission talk. We will also have an oral exam, but at this point we didn't decide yet on the modalities (how many points, is the oral exam compulsory, in what circumstances etc).

  1. a) Framework download and setup: get to know Nori
    b) Ray tracing acceleration data structures: Extend the base framework by adding a BVH acceleration structure. Beyond basic performance requirements, it is up to you how effective you want to make your implementation. We encourage you to apply your knowledge from the lecture on SAH, approximate sorting or multi-layered hierarchy structures. The fastest solutions (both for construction and traversal) will be listed in a dedicated hall of fame.
    Preliminary due date: April 8th, 2020
  2. Monte Carlo Sampling: ambient occlusion.
    Preliminary due date: April 29th, 2020
  3. Path Tracing: implement a working path tracer with Russian roulette
    Preliminary due date: June 17th, 2020
You will have many opportunities to implement something for bonus points, for instance direct light sampling (next event estimation), BRDF sampling, MIS, glass-like materials, complex material models, depth of field, more advanced rendering algorithms, you'll definitely have the opportunity to knock yourself out! More information will follow later.

Further Reading

Historic Course Galleries

You can find the hall of fame of previous iterations here.

Note that the assignments of 2020 and onward are very different to these.