Advanced Graphics

academic year 2013/14 – 3rd period

title image title image title image



Recent news (Apr 16):

  • Results gallery (practical projects) posted.
  • Exam results are out - notify us if you did not receive an email.

Old posts

Course 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. As listed below, the course has three main focus areas: Mathematical and Physical Fundamentals, Rendering Algorithms, and Methods for Increase Efficiency.

In the first section, fundamentals of linear algebra and calculus are discussed (including a recap of prerequisites from the bachelor program). Then, the physics of light transport is discussed, such as modeling ray optics and the equilibrium conditions for light transport ("Rendering Equation") in various settings.

The second topic area introduces the basic rendering algorithms (finite element radiosity/radiance, path tracing, photon tracing, and discusses standard optimizations (basis functions, variance reduction).

The third part deals with efficiency. The main focus is on data structures for efficient rendering, as well as hard-ware considerations (shaders, GPUs/SIMT).

Organization: The course consists of a lecture, practical project work, and (ungraded) homework assignments. To pass the course, the practical projects need to be completed successfully and a final exam must be passed. The homework helps with preparing for the exam.

Format and Organization

Lecturer: Michael Wand

Teaching Assistant: Chuan Li


  • Mondays, 13:15h - 15:00h, Room BBL-165
  • Thursdays, 11:00h - 12:45h, Room BBL-165
  • 3rd period (week 6-16, i.e., Feb 3 2014 - April 18 2014)
  • No lectures in herkansing week (week 22, i.e., March 10 - 14)
  • Rescheduled lecture: The lecture on April 7 will be canceled and moved to April 1, 15:15-17h, Room BBL-165.

Homework assignments:

  • Theoretical assignments will be posted online
  • Theoretical assignments are ungraded. Participation is voluntary but strongly encouraged.
  • The assignments will help you to prepare yourself for the exam.


  • We will have a practical project track.
  • The goal is to implement a viewer / renderer for 3D scenes with physically-based global illumination.
  • Participation is mandatory. There will be three milestones and project presentation.
  • Projects should be performed in groups of two students.
  • Milestones have to be presented in personal interviews (Room BBL 4.24 and BBL 4.47):
  • Milestone #1
    • Mo Feb 17 15:00-17:00h,
    • Tue Feb 18 14:00-15:20h
  • Milestone #2
    • Mo Mar 03 15:00-17:00h
    • Tue Mar 04 14:00-15:20h
  • Milestone #3
    • Mo Mar 31 15:00-17:00h
    • Tue Apr 01 14:00-15:20h
  • Final Presentation
    • Thu Apr 10 9:15-12:45h, Room BBL 0.23


  • There will be a final exam in the end.

Overall grading:

  • You must pass the final exam and the practical project in order to pass the lecture.
  • The final exam accounts for 60% of the grade.
  • The project results account for 40% of the grade.

Consultation hours:

  • Please contact the lecturer any time with questions concerning theory and/or practice.
  • Preferred: Monday after the lecture (15:30-18:30h, Room BBL 424) or make an appointment via email any time.




Linear Algebra

  • Function spaces
  • Linear mappings


  • Derivatives & integrals
  • Integral & differential equations


  • Radiometric modeling (ray optics)
  • The rendering equation(s)

Signal Theory

  • Fourier transform
  • Regular & irregular sampling

Finite-Elements Approaches

  • Radiosity
  • Radiance

Monte-Carlo Algorithms

  • Distributed raytracing
  • Photon mapping
  • Path tracing
  • Other stochastic approaches

Real-time rendering approaches

  • Instant radiosity / VPLs

Variance reduction

  • Importance sampling
  • Stratified Sampling

Multi-resolution algorithms

  • Hierarchical representations
  • Adaptive basis functions

Data structures

  • Spatial hierarchies
  • Traversal algorithms

(the list is intended to give a rough orientation; topics might still be subject to change, and additional aspects might be covered)



  • Basic knowledge in linear algebra, calculus, probability theory as required for the masters program, see "Elementary maths for GMT" (we will still recap important concepts but move quickly)
  • Fundamentals in algorithms and data structures


  • Good programming skills
  • Basic C++ programming (you can use other languages, too, but at your own risk).
    Plan for additional time if you plan to familiarize yourself with C++ during the course.
  • Good to have: Basic experience with graphics APIs (OpenGL / DirectX).
    Plan for additional time if you need to acquire the skills during the course.

Lecture Slides

Slides download:

Theoretical Assignments

Assignment #1: Linear Algebra & Function Spaces (issued: Feb 06, finish by: Feb 17)
Solutions #1: Solutions for Assignment #1 (last update: Feb 18)

Assignment #2: Physics, Raytracing, and Data Structures (issued: Feb 20, finish by: Mar 06)
Important: Please ignore the sub-assignment 2 "Physically-based Lighting" in the theoretical assignment sheet #2 above for now (topic will be addressed later in the lecture).
Solutions #2: Solutions for Assignment #2 (last update: Mar 13)

Assignment #3: Stochastic Raytracing and Physically-based Illumination (issued: Mar 13, finish by: Mar 25)
Solutions #2: Solutions for Assignment #3 (last update: Mar 25)

Assignment #4: Quadrics, Filter Design, and Stochastic Sampling Strategies (issued: Mar 28, finish by: Apr 08)
Solutions #4: Solutions for Assignment #4 (last update: Apr 10)

Practice exam: download it here (last update: Apr 11)
Note: The practice exam is intended to aid your preparations for the final exam; it comes with no warrenties. The topics, scope, and difficulty of the final exam might differ, and the practice exam has not been strictly timed and verified.

Discussion Sessions: We will have discussion sessions to look at the homework solutions together. You have the opportunity to present your solutions and get feedback. The tutorial sessions are scheduled as follows:

  • Theory 1: Tuesday, Feb 25, 14-15h, Room BBL 001
  • Theory 2: Tuesday, Mar 18, 14-15h, Room BBL 001
  • Theory 3: Tuesday, Mar 25, 14-15h, Room BBL 001
  • Theory 4: Tuesday, Apr 08, 14-15h, Room BBL 169

Practical Assignments

The course includes a software project that should be worked on in groups of two students. There will be milestones (to be presented in personal interviews) and a final presentation. You should consult the lecturer during the course to get technical & theoretical advice / support.

Software framework:

  • A simple-to-use C++ programming framework for VisualStudio/Windows and Unix will be provided.
  • Usage is optional.
  • You can use any language/environment if the lecturer agrees (at your own risk); predefined functionality must be adequate (for example, using a complete global illumination rendering package would go too far).

The major milestones are listed below:

(1) Interactive 3D Mesh Viewer


  • Import meshes in *.obj format
  • Render meshes with simple z-Buffer rendering (OpenGL/DirectX recommended)
  • Control camera with the mouse interactively.
  • This is a recap of traditional "graphics" topics; it helps to familiarize yourself with C++ and OpenGL (or the language / API / environment of your choice).

Download assignment sheet here.

Software framework: see below.

(2) Basic Raytracing Renderer


  • Implement a raytracer
  • Experiment with anti-aliasing / distributed raytracing.
  • Implement acceleration data structures.

Download assignment sheet here.

Updated software package: download.

(3) Global Illumination


  • Implement a global illumination renderer
  • Choose a suitable algorithmic framework (path tracing, photo mapping, VPLs, or the similar)
  • Examine algorithmic options.

Download assignment sheet here.

An updated software package: A new version of GeoX that includes a kdTree raytracer is available for download.


  • Assignment sheet P1 - published Feb 03 2014, due Feb 17 2014 (2 weeks).
  • Assignment sheet P2 - published Feb 17 2014, due Mar 03 2014 (2 weeks). (updated on Feb 26: the assignment sheet now explicitly lists states the scoring scheme for the individual parts)
  • Assignment sheet P3 - published Mar 03 2014, milestone  due Mar 31 2014 (4 weeks); final presentation:  Apr 10; summary write-up:  Apr 10 (5 weeks overall).

Gallery: Project Results


result img

Joey Deiman, Minghai Jiang


result img

A watery Cornell box lit by a torus shows all kinds of refraction and reflection.

Ruben Dulek, Peter Prins


result img

Photon mapping: 10000 photons, 300 nearest neighbors for every pixel.

Tim de Haas, Octavian Nasui


result img

100k photons and direct diffuse light lighting up our test scene. The light source is invisible and located close to the ‘golden’ plane.

Gerjo Meier, Merijn van Tooren


result img

Path traced color bleeding and soft shadow in a diffuse scene

Jordy Molenaar, Thijs van Wingerden


result img

A scene with multiple types of materials with next event estimation. It uses (162x2) samples per pixel

Kevin van Nieuwenhuizen, Johnny Schaap


result img

Enrico Ribelli, Michele Rullo


result img

Printed page with prisms, featuring refraction, dispersion and depth of field.

Paul Scharf, Tom Rijnbeek


Software Framework

Geo-X Framework

    Geo-X logo
  • Geo-X is an (optional) programming framework for the practicals.
  • It provides a reflection-based interface for creating experiments, and a number of simple 2D/3D viewers. It makes it substantially easier to created of user interfaces for interactive applications.
  • Assignment 1: The 3D viewer component is intended as demonstrator, not as a solution for the first assignment. If you use the component as it is, you will get a reduced grade for that part. Please read the rules for assignment P1 carefully.
  • Assignment 2: You can use all of the functionality of the framework, including the updated version (solution to P1).


You can use any other language/environment (at your own risk), if the lecturer agrees. We officially support Geo-X with Windows + Visual Studio. The software works on Linux, too (best efforts, but worked well in the past). MacOS requires some extra efforts, but is also possible (no guarantees here).



Literature & Links


Further literature:

  • Tomas Akenine-Möller, Eric Haines, and Naty Hoffman: Real-time Rendering (AK Peters)
  • More sources will be posted during the lecture (including research papers).

Previous lecture:

Other web resources:

News Archive

Old posts:

  • Reminder: final exam will be held Tue Apr 15 2014, 13.30h-16.30h in room EDUC-GAMMA.
  • Update: Corrections on slides 03, 07a, 05, 09 (see below).
  • Practice exam published.
    Direct download link.
  • Lecture slides Apr 01 updated and posted.
  • Lecture slides Mar 31 updated and posted.
  • Lecture rescheduling: Due to indiedevelopment, the lecture on April 7 2014 will be canceled.
    The replacement lecture will take place on
    Tuesday, April 1, from 15:15h-17:00h in Room BBL 1.65.
  • Theoretical assignment 4 posted.
  • Lecture slides on physically modeling / rendering equation updated.
  • Next tutorial session: March 25th, 14h in BBL 001.
  • Solution for assignment T3 posted.
  • Lecture Slides updated.
  • Solutions for theoretical assignment T2 posted.
  • Theoretical assignment T3 is out.
  • Schedule for theory homework discussion sessions posted.
  • Remark on theory assignment T2: please ignore the sub-assignment 2 "Physically-based Lighting" within T2 for now (topic will be addressed later in the lecture).
  • Raytracing framwork (solution of P2) for practical assignment sheet P3 has been posted.
  • Practical assignment sheet P3 has been posted.
  • Slides posted for Mo Mar 03 lecture.
  • Slides posted for Thu Feb 27 lecture.
  • Practical assignment sheet P2 has been updated with grading information.
  • Room for tutorial session on Tue Feb 25 (14-15h): BBL 001
  • Slides posted for Mo Feb 24 lecture.
  • Clarification: Milestone 2 is due at the interview sessions (Mar 03/04).
  • Theoretical Assignment T2 posted.
  • Raytracing and Data Structures Slides posted.
  • Solution to practicals #1 (framework udpdate) is available.
  • Solutions for theory assignment #1 are available.
  • Practical assignment #2 is out.
  • Slides on Physics of Light Transport published.
  • Slides on 03_FunctionSpaces updated.
  • Sign up for practicals interviews: in the lecture on Thu Feb 13
  • Theoretical assignment #1 is out.
  • Thursday Feb 06 slides posted.
  • Thursday lecture will remain in room BBL-165 (no changes; collision has been resolved).
  • Monday Feb 03 slides posted.
    Schedule updated; details will be discussed and fixed in Thu Feb 06 lecture.
  • Practical assignment P1 posted.
  • Software framework posted.
  • First meeting: Monday Feb 03, 13:15h-15:00h, Room BBL-165