Visualization and GraphicsInteractionDept ICSFaculty of ScienceUU

https://www.projects.science.uu.nl/ics-vig/Site/TopBar

INFOMAGR Advanced Graphics

Academic year 2026/27 -- period 2

Navigation

Extensions and Exceptions
Topics
Schedule
Practical Assignments
Grading
Literature

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:

  1. Understand the physical basis of light transport simulation
  2. Have knowledge of the main ray tracing-based rendering methods
  3. Have knowledge of acceleration structures for ray-scene intersection and how to construct an efficient BVH for static and dynamic scenes
  4. Have knowledge of the characteristics of GPUs related to ray tracing and be aware of algorithms that specifically target these processors
  5. Understand Monte Carlo and variance reduction techniques, specifically the application of probability density functions in the context of light transport
  6. 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

  • Two lectures per week: in BBG 2.14 every Tuesday 11:00 - 12:45, Thursday 15:15 - 17:00
  • Check the schedule below or MyTimetable / the MyUU app for changes

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

  • Illness or force majeure: Follow the procedure to deregister for an exam or practical assignment deadline and apply for a retake or postponed deadline. It may take several weeks before your case is processed, so please notify the course coordinator too. (This procedure applies to students on GSNS programmes only. Your programme may vary.)
  • Other reasons: Email the course coordinator with a brief reason (no sensitive details are needed) and a proposed solution (e.g., retake, or N days extension).

You are not automatically eligible for a retake if you miss a deadline or exam without following the correct procedure.


Topics

Ray Tracing Path Tracing Efficiency

Whitted-style Ray Tracing

  • Recap
  • Beer's Law

Acceleration Structures

  • Bounding Volume Hierarchy
  • Efficient Construction and Traversal
  • Octree, kD-tree, BSP
  • Dynamic: Top-Level Acceleration Structure

Light Transport

  • The Rendering Equation

Monte Carlo Algorithms

  • Distribution Ray Tracing
  • Path Tracing

Variance Reduction

  • Stratification
  • Importance Sampling
  • Next Event Estimation

GPU implementations

  • Streaming Algorithms
  • Wavefront Path Tracing

Variance Reduction

  • Multiple Importance Sampling
  • Resampled Importance Sampling
  • Bidirectional Path Tracing
  • Photon Mapping

Image Postprocessing

  • Filtering Techniques

Tentative Schedule

Week Date Location Lecture Practical
47 Tue Nov 17
11:00-12:45
BBG 214 Introduction
Thu Nov 19
15:15-17:00
BBG 214 Whitted-style ray tracing
48 Tue Nov 24
11:00-12:45
BBG 214 Acceleration structures Assignment 1:
Acceleration structures
Thu Nov 26
15:15-17:00
BBG 214 Bounding Volume Hierarchy (BVH)
49 Tue Dec 1
11:00-12:45
BBG 214 Light transport
Thu Dec 3
15:15-17:00
BBG 214 Path tracing
50 Tue Dec 8
11:00-12:45
BBG 214 Variance reduction (1)
Thu Dec 10
15:15-17:00
BBG 214 No lecture
(finish assignment 1)
Deadline:
Mon Dec 14, 17:00
51 Tue Dec 15
11:00-12:45
BBG 214 Variance reduction (2) Assignment 2:
Recent research
Thu Dec 17
15:15-17:00
BBG 214 No lecture
(early winter break)
52, 53 Winter break
1 Tue Jan 5
11:00-12:45
BBG 214 GPU ray tracing
Thu Jan 7
15:15-17:00
BBG 214 Various
2 Tue Jan 12
11:00-12:45
BBG 214 Bidirectional algorithms
Thu Jan 14
15:15-17:00
BBG 214 Probability theory
3 Tue Jan 19
11:00-12:45
BBG 214 Resampling
Thu Jan 21
15:15-17:00
BBG 214 Filtering
4 Tue Jan 26
11:00-12:45
BBG 214 No lecture
(finish assignment 2)
Deadline:
Wed Jan 27, 17:00
Thu Jan 28
15:15-17:00
BBG 214 Exam preparation
5 Thu Feb 4
13:30-15:30
Educatorium THEATRON Final Exam
Retake Assignment
Deadline:
Mon Apr 5, 17:00
16 Thu Apr 22
13:30-15:30
TBD 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 should 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.

  1. Acceleration structures: You will (implement and) compare the performance of at least two acceleration structures in a ray tracing-based renderer.
  2. 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). At your own risk, you may use other open-source renderers or even a renderer that you've implemented yourself previously.

Please don't waste your time implementing a renderer from scratch during the assignment. That would be a considerable effort that would not contribute towards the grade. It would take precious time away from the graded parts of the assignment.

AI tools tend to produce code that they have copied ("learned") from online sources, without referencing. If that's more than a few lines of code, that will likely be detected as plagiarism and will be treated as such.


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 some of your previous grades to this academic year. Contact the lecturer to request this.


Literature

Books (available for free online)

Papers and Blogs

Additional materials will be mentioned in the lecture slides. The university WiFi gives you free access to many pay-walled publications.