Lecture Announcements
Registration and course data is available on the
TISS site.
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. 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.
- 0. Introduction and Organization
Lecture slides
- 1. Acceleration Structures for Ray Tracing (Bernhard)
BVH, K-d tree, surface area heuristic (SAH)
Lecture slides
- 2. Light (Adam)
physics, radiance, irradiance, solid angle
Lecture slides
- 3. Monte Carlo Integration (Adam + Bernhard)
importance sampling, multiple importance sampling (MIS)
Lecture slides for part 1
Lecture slides for part 2
Lecture slides for part 3
- 4. The Rendering Equation (Adam)
integrating over infinitely many dimensions, recursive and path integral formulation
Lecture slides
- 5. Path Tracing (Adam + Bernhard)
Russian roulette, next event estimation (direct light sampling)
Lecture slides for part 1
Lecture slides for part 2
- 6. Materials (Bernhard)
B*DFs, Fresnel, Snell's law, Dielectrics, Path phenomena
Lecture slides
- 7. Global Illumination Galore (We may skip this)
MLT, photon mapping, instant radiosity, Path-guiding, motion blur, etc.
slides will follow
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).
- 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
- Monte Carlo Sampling: ambient occlusion.
Preliminary due date: April 29th, 2020
- 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.