INFOMAGR Advanced Graphics
Academic year 2025/26 -- period 2



Navigation |
---|
Extensions and Exceptions |
Format and Organization
Overview
The master course Advanced Graphics addresses advanced topics in 3D computer graphics. The focus of the course is Physically Based rendering of 3D scenes. The course has two main focus areas: Rendering Algorithms and Making Rendering More Efficient. Efficiency will be sought through Acceleration Structure Construction and Traversal and Variance Reduction (rather than low level optimization).
We explore various acceleration structures that help to run the ray tracing algorithm in real-time on commodity hardware. We will see that a well-built Bounding Volume Hierarchy (BVH) provides both flexibility and speed, for static and dynamic scenes.
The course also introduces the path tracing algorithm, and related light transport theory. We investigate various methods to improve the efficiency of the algorithm using probability theory. We will see that efficient path tracing can yield interactive frame rates.
Finally we discuss general-purpose Graphics Processing Unit (GPU) programming to run ray tracing and path tracing on the GPU. We will explore recent research in high performance stochastic rendering.
Prerequisites
This course builds on all of the prerequisites of the MSc Game and Media Technology programme. In particular:
- Mathematics: integral and differential calculus, linear algebra, and probability theory.
- Data structures and algorithms: tree data structures, complexity of algorithms, big-O notation.
- Computer graphics: bachelor-level knowledge of computer graphics, specifically experience developing a Whitted-style ray tracer from scratch. If you don't have this prior graphics experience, you should familiarize yourself before the practical assignments start by working through a tutorial such as the Ray Tracing in One Weekend series.
- Programming: fluency in an appropriate language such as C# or C++. For optimal performance and certain low level aspects, C++ is recommended. It would require a lot of additional time to familiarize yourself with C++ during the course. Other appropriate programming languages may be agreed with the lecturer on an individual basis.
- Good to have, but not absolutely required: basic experience with graphics APIs (e.g. OpenGL / DirectX / Vulkan). No specific graphics API is required for the assignments.
Intended Learning Outcomes (ILOs)
Students will:
- Understand the physical basis of light transport simulation
- Have knowledge of the main ray tracing-based rendering methods
- Have knowledge of acceleration structures for ray-scene intersection and how to construct an efficient BVH for static and dynamic scenes
- Have knowledge of the characteristics of GPUs related to ray tracing and be aware of algorithms that specifically target these processors
- Understand Monte Carlo and variance reduction techniques, specifically the application of probability density functions in the context of light transport
- Have knowledge of state-of-the-art developments in the field of physically based rendering
Links
- Teams: discussion, collaboration, support, slides, assignments, and lecture streams and recordings
- Brightspace: practical assignment submissions, grades, and feedback
- Course catalog: official (centrally managed) course information
- This page: 'static' course information
Lecturer
Peter Vangorp (p.vangorp@uu.nl)
Lectures
- Lectures and labs are in BBG 201 - but check the schedule below or MyTimetable / the MyUU app for changes
- Two lectures per week: Tuesday 10:00 - 11:45, Thursday 13:15 - 15:00
- Lecturer-supervised discussion / support labs: Tuesday 9:00 - 9:45 (optional) and 12:00 - 12:45, Thursday 15:15 - 17:00
Lectures will be streamed live on Teams for students who cannot be physically on campus. Lecture recordings will be made available for later reference. Slides will be made available in advance.
Assessment
- Practical assignment 1 (ILOs 2 and 3)
- Practical assignment 2 (ILOs 2 and 3, and others depending on your specific project choice)
- Final Exam (ILOs 1-6)
Extensions and Exceptions
If you need to skip or postpone a deadline or an exam for any reason (e.g., health, family), please notify your study advisor, cc: the course coordinator (p.vangorp@uu.nl), as soon as possible. No sensitive details are needed in this initial email. If necessary, the study advisor will discuss details with you in confidence.
You are not automatically eligible for a retake if you miss a deadline or exam without notifying your study advisor and course coordinator.
Topics
Ray Tracing | Path Tracing | Efficiency |
Whitted-style Ray Tracing
Acceleration Structures
|
Light Transport
Monte Carlo Algorithms
Variance Reduction
|
GPU implementations
Variance Reduction
Image Postprocessing
|
Tentative Schedule
Week | Date | Location | Lecture | Labs | Practical |
---|---|---|---|---|---|
46 | Tue Nov 11 10:00-11:45 | BBG 201 | Introduction | ||
Thu Nov 13 13:15-15:00 | BBG 201 | Whitted-style ray tracing | |||
47 | Tue Nov 18 10:00-11:45 | BBG 201 | Acceleration structures | 9:00-9:45 (optional) 12:00-12:45 | Assignment 1: Acceleration structures |
Thu Nov 20 13:15-15:00 | BBG 201 | Bounding Volume Hierarchy (BVH) | 15:15-17:00 | ||
48 | Tue Nov 25 10:00-11:45 | BBG 201 | Light transport | 9:00-9:45 (optional) 12:00-12:45 | |
Thu Nov 27 13:15-15:00 | BBG 201 | Path tracing | 15:15-17:00 | ||
49 | Tue Dec 2 10:00-11:45 | BBG 201 | Variance reduction (1) | 9:00-9:45 (optional) 12:00-12:45 | |
Thu Dec 4 | No lecture (lecturer unavailable, finish assignment 1) | Deadline: Mon Dec 8, 17:00 | |||
50 | Tue Dec 9 10:00-11:45 | BBG 201 | Variance reduction (2) | 9:00-9:45 (optional) 12:00-12:45 | Assignment 2: Recent research |
Thu Dec 11 13:15-15:00 | BBG 201 | GPU ray tracing | 15:15-17:00 | ||
51 | Tue Dec 16 10:00-11:45 | BBG 201 | Various | 9:00-9:45 (optional) 12:00-12:45 | |
Thu Dec 18 | No lecture (early Winter break) | ||||
52, 1 | Winter break | ||||
2 | Tue Jan 6 10:00-11:45 | BBG 201 | Bidirectional algorithms | 9:00-9:45 (optional) 12:00-12:45 | |
Thu Jan 8 13:15-15:00 | BBG 201 | Probability theory | 15:15-17:00 | ||
3 | Tue Jan 13 10:00-11:45 | BBG 201 | Resampling | 9:00-9:45 (optional) 12:00-12:45 | |
Thu Jan 15 13:15-15:00 | BBG 201 | Filtering | 15:15-17:00 | ||
4 | Tue Jan 20 10:00-11:45 | BBG 201 | No lecture (finish assignment 2) | 9:00-12:45 | Deadline: Wed Jan 21, 17:00 |
Thu Jan 22 13:15-15:00 | BBG 201 | Exam preparation | 15:15-17:00 | ||
5 | Thu Jan 29 13:30-15:30 | Olympos HAL3 | Final Exam | ||
Retake Assignment Deadline: Mon Mar 30, 17:00 | |||||
16 | Retake Exam |
Practical Assignments
This course has two practical assignments that take the form of small projects, developing parts of an advanced ray tracing-based renderer. You may work on the practical assignments in groups of two students. Only if you cannot find a partner, you may do the practical assignments by yourself, but the expected magnitude of the project remains the same. The practical assignments have as outcomes a ray tracing-based renderer with a relevant advanced feature, which make great additions to your portfolio.
- Acceleration structures: You will (implement and) compare the performance of at least two acceleration structures in a ray tracing-based renderer.
- Recent research: You will implement a recent research paper in a ray tracing-based renderer. You are free to choose your specific focus from a list of suggested papers.
For both practical assignments you may start from a template or an existing open-source renderer. One possible C++ template is available on GitHub. Other good open-source renderers include PBRT (C++) or Mitsuba (C++ core with Python bindings). Other interesting renderers: Lighthouse 2, VoxelWorld template.
Implementing a renderer from scratch is also allowed, but it's a considerable effort that will not contribute towards the grade. It will take precious time away from the graded parts of the assignment.
Grading
In order to pass the course, you must participate in all assessments to receive a grade:
- Practical assignment 1 grade: P1
- Practical assignment 2 grade: P2
- Exam grade: E
- Weighted average practical grade: P = (P1 + 2*P2) / 3
- Final grade: F = (P + E) / 2
In order to pass the course, you must also meet these additional requirements:
- P >= 4.5
- E >= 5.5
- F >= 5.5
Retakes
There will be an opportunity for a retake exam or one retake assignment. In order to qualify, you must meet all assignment deadlines and participate in the exam (or obtain an extension or exception), and you must have a high-enough-but-non-passing final grade: 4.0 <= F < 6.0. The retake exam or assignment grade replaces the corresponding grade in the calculation of the final grade.
Transfers from a previous year
If you are repeating this course it may be possible to transfer only your previous practical assignment grades to this academic year. Contact the lecturer to request this. You must always redo the exam.
Literature
Books (available for free online)
- Pharr et al. 2023. Physically Based Rendering: From Theory to Implementation, Fourth Edition. MIT Press.
- Haines and Akenine-Möller 2019. Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress.
- Marrs et al. 2021. Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX. Apress.
Papers and Blogs
- Aila and Laine 2009. Understanding the efficiency of ray traversal on GPUs. In Proc. High Performance Graphics 2009, 145-149.
- Benthin et al. 2017. Improved two-level BVHs using partial re-braiding. In Proc. High Performance Graphics 2017, 1-8.
- Bikker 2019. Probability theory for physically based rendering. Blog post series.
- Bikker 2019. Wavefront path tracing. Blog post.
- Bikker 2022. How to build a BVH. Blog post series.
- Bitterli et al. 2020. Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting. In Proc. ACM SIGGRAPH 2020, ACM Transactions on Graphics 39(4):148.
- Cook et al. 1984. Distributed ray tracing. ACM SIGGRAPH Computer Graphics 18(3):137-145.
- Ganestam et al. 2015. Bonsai: Rapid bounding volume hierarchy generation using mini trees. Journal of Computer Graphics Techniques 4(3).
- Horn et al. 2007. Interactive k-D tree GPU raytracing. In Proc. Symposium on Interactive 3D Graphics and Games 2007, 167-174.
- Kajiya 1986. The rendering equation. ACM SIGGRAPH Computer Graphics 20(4):143-150.
- Laine et al. 2013. Megakernels considered harmful: Wavefront path tracing on GPUs. In Proc. High Performance Graphics 2013, 137-143.
- Lauterbach et al. 2009. Fast BVH construction on GPUs. Computer Graphics Forum 28(2):375-384.
- MacDonald and Booth 1990. Heuristics for ray tracing using space subdivision. The Visual Computer 6:153-166.
- Meister et al. 2021. A survey on bounding volume hierarchies for ray tracing. Computer Graphics Forum 40(2):683-712.
- Overbeck et al. 2008. Large ray packets for real-time Whitted ray tracing. In Proc. IEEE Symposium on Interactive Ray Tracing 2008, 41-48.
- Purcell et al. 2002. Ray tracing on programmable graphics hardware. In Proc. ACM SIGGRAPH 2002, ACM Transactions on Graphics 21(3):703-712.
- Torrance and Sparrow 1967. Theory for off-specular reflection from roughened surfaces. Journal of the Optical Society of America 57(9):1105-1114.
- van Antwerpen 2011. Unbiased physically based rendering on the GPU. Master thesis, TU Delft.
- Veach 1997. Robust Monte Carlo methods for light transport simulation. PhD thesis, Stanford University.
- Vorba et al. 2019. Path guiding in production. ACM SIGGRAPH 2019 Course Notes.
- Wald et al. 2001. Interactive rendering with coherent ray tracing. Computer Graphics Forum 20(3):153-165.
- Wald et al. 2008. Getting rid of packets - Efficient SIMD single-ray traversal using multi-branching BVHs. In Proc. IEEE Symposium on Interactive Ray Tracing 2008, 49-57.
- Walter et al. 2007. Microfacet models for refraction through rough surfaces. In Proc. Eurographics Symposium on Rendering 2007, 195-206.
- Walter et al. 2008. Fast agglomerative clustering for rendering. In Proc. IEEE Symposium on Interactive Ray Tracing 2008, 81-86.
- Whitted 1980. An improved illumination model for shaded display. Communications of the ACM 23(6):343-349.
Additional materials will be mentioned in the lecture slides. The university WiFi gives you free access to many pay-walled publications.