Advanced Graphics (INFOMAGR)

Utrecht university - Information and Computing Sciences

academic year 2024/25 – 2nd block

title image title image title image

Navigation

Format & Organization

Topics

Downloads

Extensions & Exceptions

Schedule

Practicals

Literature & Links


Format and Organizationback to navigation

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).

The course assumes prior experience with Whitted-style ray tracing.

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 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 use general-purpose GPU programming (GPGPU) to run ray tracing and path tracing on the GPU. We will explore recent research in high performance stochastic rendering.


Course objectives

At the end of this course you will have detailed knowledge about the following topics:
  • physical light transport, and how to simulate this behavior in a computer program;
  • modern ray tracing based rendering algorithms;
  • high level optimizations of the ray tracing algorithm;
  • Monte Carlo integration and variance reduction;
  • GPU-specific optimizations of ray tracing algorithms.

You will have practical experience in the following topics:

  • implementation of acceleration structure construction and traversal;
  • implementation of a recent research paper on a topic related to this course.

You will have a reasonable grasp of several related topics:

  • distributed ray tracing;
  • bidirectional methods, including photon mapping;
  • GPU ray tracing and wavefront path tracing;
  • resampling or filtering of the noisy output of a path tracer.


LINKS

  • Teams: discussion, collaboration, support, slides, assignments, and lecture streams and recordings.
  • Blackboard: practical assignment submissions, grades, and feedback.
  • Course catalog: the official (centrally managed) course information.
  • ics-websites.science.uu.nl: 'static' course information (this page).


Lecturer

Peter Vangorp (p.vangorp@uu.nl)


LectureS

  • Lectures and labs are in various rooms in BBG - check the schedule below.
  • Two lectures per week: Tuesday 10:00 - 11:45, Thursday 13:15 - 15:00.
  • Lecturer-supervised discussion / support labs: Tuesday 9:00 - 10:00 (optional) and 11:45 - 12:45, Thursday 15:15 - 17:00.

Lectures will be streamed live on Teams for those who cannot be physically on campus. Lecture recordings will be made available for later reference. Slides will be made available in advance.

Practical assignments

This course has practical assignments that take the form of small projects. During this course, you will develop 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. There are two practical assignments that each have as the outcome a ray-tracing-based renderer with a relevant advanced feature, which make great additions to your portfolio.

Final Exam

There will be one exam at the end of the block (i.e., no mid-term exam). A retake exam or retake assignment can be used to compensate some deficits (see grading section for details).


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, 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.
 

Extensions and Exceptionsback to navigation

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. Please ask the study advisor to send their recommendation to the course coordinator directly.


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

Whitted-style Ray Tracing

  • Recap
  • Beer's Law, Fresnel

Acceleration Structures

  • Octree, kD-tree, BSP
  • Bounding Volume Hierarchy
  • Efficient Construction & Traversal

Dynamic Scenes

  • The Top-Level BVH

Real-time

  • Ray Packet Traversal
 
Path Tracing

Light Transport

  • The Rendering Equation

Monte-Carlo Algorithms

  • Distributed Ray Tracing
  • Path Tracing

Variance Reduction

  • Stratification
  • Importance Sampling
  • Next Event Estimation

Interactive

  • Multi-branching BVHs
 
Efficiency

GPU implementations

  • Streaming Algorithms
  • Wavefront Path Tracing

Variance reduction

  • Multiple Importance Sampling
  • Resampled Importance Sampling
  • Bi-directional Path Tracing
  • Photon Mapping

Image Postprocessing

  • Bias
  • Filtering Techniques

Tentative Scheduleback to navigation

BLOCK 2 Schedule

Week Date Location
Lecture / Exams Working College Practical
46 Tue Nov 12
10:00-11:45
BBG - 201
Lecture 1
Introduction
   
Thu Nov 14
13:15-15:00
BBG - 161
Lecture 2
Whitted-style ray tracing
   
47 Tue Nov 19
9:00-12:45
BBG - 201
NO Lecture!
(lecturer unavailable)

 
Thu Nov 21
13:15-17:00
BBG - 161
Lecture 3
Acceleration structures
Working College
Thu 15:15-17:00

Assignment 1:

Acceleration structures

48 Tue Nov 26
10:00-11:45
BBG - 201
Lecture 4
Bounding Volume Hierarchy (BVH)
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45
Thu Nov 28
13:15-17:00
BBG - 161
Lecture 5
Light transport
Working College
Thu 15:15-17:00
49 Tue Dec 3
10:00-11:45
BBG - 201
Lecture 6
Path tracing
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45
Thu Dec 5
13:15-17:00
BBG - 205
NO Lecture!
St. Nicholas' Eve (pakjesavond)
Working College (optional)
Thu 13:15-17:00
50 Tue Dec 10
10:00-11:45
BBG - 201
Lecture 7
Variance reduction (1)
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45
Deadline:
Wed Dec 11, 17:00
Thu Dec 12
13:15-17:00
BBG - 161
Lecture 8
Variance reduction (2)
Working College
Thu 15:15-17:00

51
Tue Dec 17
10:00-11:45
BBG - 201
Lecture 9
GPU ray tracing
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45

Assignment 2:

Specialize

Thu Dec 19
13:15-17:00
BBG - 209
Lecture 10
Various
Working College
Thu 15:15-17:00
52,1
Winter break

2 Tue Jan 7
10:00-11:45
BBG - 201
Lecture 11
Bidirectional algorithms
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45
Thu Jan 9
13:15-17:00
BBG - 023
Lecture 12
Probability theory
Working College
Thu 15:15-17:00
3
Tue Jan 14
10:00-11:45
BBG - 201
Lecture 13
Resampling
Working College
Tue 9:00-10:00 (optional) and 11:45-12:45
Thu Jan 16
13:15-17:00
BBG - 023
Lecture 14
Filtering
Working College
Thu 15:15-17:00
4
Tue Jan 21
9:00-12:45
BBG - 201
NO Lecture!
(lecturer unavailable)

Thu Jan 23
13:15-17:00
BBG - 023
Lecture 15
Exam preparation
Working College
Thu 15:15-17:00
Deadline:
Wed Jan 22, 17:00

Block 2 Exam
  Thu Jan 30, 13:30 - 15:30 in EDUCATORIUM GAMMA

 

Downloadsback to navigation


SUPPLEMENTAL MATERIALasdfds

Practical assignments will be made available in Teams and must be submitted via Blackboard.


An optional C++ programming template is available on GitHub.
Other good open-source codebases include PBRT or Mitsuba.

More content may be made available during the course.


INTERESTING RENDERERS

Lighthouse 2 can be found on GitHub.
VoxelWorld template is also available on GitHub.



Practical Assignmentsback to navigation

The course includes two small software projects that should be worked on in pairs. It is allowed to work on this alone, but be aware that the scope of the project is tuned for duos.

  1. Acceleration structures: You will (implement and) compare the performance of at least two acceleration structures in a ray-tracing-based renderer.
  2. Specialize: You will be developing your own implementation of a recent research paper in a ray-tracing-based renderer. You are free to choose your specific focus from a list of suggested papers.

The final grade for the practical assignments is calculated as follows:

practical grade P = (P1 + 2 * P2) / 3



Gradingback to navigation

GRADING

In order to pass the course, you must meet these requirements:

Practical grade P = (P1 + 2 * P2) / 3
Exam grade E
Final grade F = (2 * P + E) / 3

Where

P >= 4.5
E >= 4.5
F >= 5.5.

RETAKES AND REQUIREMENTS

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 final grade (F) of at least 4.0. The retake exam or assignment replaces the corresponding exam or assignment.

IMPORTANT: you can only do a retake if you have both a high-enough but non-passing grade (i.e., 4.0 <= F < 6.0).


Transfers from a previous year

If you are retaking this course it may be possible to transfer only your previous practical grades to this academic year. You must always retake the exam. Contact the lecturer to request a transfer of practical grades.


Literature & Linksback to navigation

LITERATURE

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

Recommended books (available for free online)