Advanced Graphics

Universiteit Utrecht - Information and Computing Sciences

academic year 2016/17 – 2nd period

title image title image title image

Navigation

News (Archive)

Schedule

Downloads

ADVGR on Slack

Format & Organization

Topics

Lecture Slides

Practicals

Literature & Links

Newsback to navigation

Recent news

Apr 21:

Feb 6:

Feb 2:

  • Assignment 3 grades and additional notes.
  • Some screenshots of the third assignment:
bestofp3

Jan 26:

Jan 24:


OLDER POSTS


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 starts with a recap of Whitted-style ray tracing. We then 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 second part of the course 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.

In the third part of the course we use GPGPU to run ray tracing and path tracing on the GPU. We will explore recent research in high performance stochastic rendering.

LINKS

  • Osiris: the official (centrally managed) schedule.
  • www.cs.uu.nl: uniform course information.
  • Check here for a list of students for this course. 
  • Join the Slack channel for support and collaboration.

PEOPLE

Lecturer: Jacco Bikker (bikker.j@gmail.com)Freudenthal

LectureS

  • Two lectures per week: Tuesday 11:00 - 12:45, Thursday 13:15 - 15:00.
  • One lecturer supervised lab per week: Thursday 15:15 - 17:00.
  • Time slots & Rooms: Hans Freudenthal building, room 611AB

Practicals

This course has a practical project track. During this course, you will develop an interactive renderer. You may work on this project alone, or with one other student. The practical project has three milestones, of which two will be graded.

Final Exam

For this course, 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

  • Basic knowledge in linear algebra, calculus and probability theory, as required for the masters program. See "Elementary maths for GMT".
  • Fundamentals in algorithms and data structures.
  • Bachelor level knowledge in computer graphics is strongly recommended. Without prior graphics knowledge, you will need substantial additional time (and probably some talent).
  • Good programming skills; C# and C++ will both work, but for optimal performance and certain low level aspects, C++ is recommended. Plan for additional time if you plan to familiarize yourself with C++ during the course.
  • Good to have: basic experience with graphics programming (e.g. OpenGL / DirectX).
 

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

Scheduleback to navigation

BLOCK 2 Schedule

Week Date Lecture / Exams Working College Practical #1 Practical #2 Practical #3
46 Tue Nov 15
11:00-12:45
NO LECTURE        
Thu Nov 17
13:15-15:00
Lecture 1:
Introduction
       
47 Tue Nov 22
11:00-12:45
Lecture 2:
Acceleration Structures
 

Assignment 1
Basic framework

   
Thu Nov 24
13:15-15:00
Lecture 3:
The Perfect BVH
Working College #1
Thu 15:15-17:00
   
48 Tue Nov 29
11:00-12:45
Lecture 4:
Real-time Ray Tracing
     
Thu Dec 1
13:15-15:00
Lecture 5:
SIMD (optional)
Working College #2
Thu 15:15-17:00
   
49 Tue Dec 6
11:00-12:45
Lecture 6:
Light Transport
  Deadline:
Tuesday Dec 6, 23:59

Assignment 2:

Acceleration structures

 
Thu Dec 8
13:15-15:00
Lecture 7:
Path Tracing
Working College #3
Thu 15:15-17:00
   
50 Tue Dec 13
11:00-12:45
Lecture 8:
Variance Reduction
     
Thu Dec 15
13:15-15:00
NO LECTURE
(department activity)
NO WORKING COLLEGE
(department activity)
   
51
Tue Dec 20
11:00-12:45
Working College #4
Tue 11:00-12:45
   

Assignment 3:

Specialize

Thu Dec 22
13:15-15:00
Working College #5
Thu 13:15-15:00

  Deadline:
Thu Dec 29, 23:59h
52,1
Christmas, New Year, Block 1 Retake Week

2 Tue Jan 10
11:00-12:45
Lecture 9:
"Various"

   
Thu Jan 12
13:15-15:00
Lecture 10:
GPGPU Recap
Working College #6
Thu 15:15-17:00
   
3
Tue Jan 17
11:00-12:45
Lecture 11:
GPU Path Tracing (1)

   
Thu Jan 19
13:15-15:00
Lecture 12:
GPU Path Tracing (2)
Working College #7
Thu 15:15-17:00
   
4
Tue Jan 24
11:00-12:45
Lecture 13:
BRDFs & Bidirectional
 
   
Thu Jan 26
13:15-17:00
Lecture 14 + Working College #8
STAR & Future Work, Recap         Thu 13:00-17:00
   
5
Block 2 Exam Week
Exam: Thu Feb 2, 17:00
Deadline:
Tue Jan 31, 23:59h

 

Downloadsback to navigation

LECTURE Slides

lecture 01 - intro & whitted.pdf
lecture 02 - acceleration structures.pdf
lecture 03 - the perfect BVH.pdf
lecture 04 - real-time ray tracing.pdf
lecture 05 - SIMD recap.pdf
lecture 06 - light transport.pdf
lecture 07 - path tracing.pdf
lecture 08 - variance reduction.pdf
lecture 09 - various.pdf
lecture 10 - GPGPU recap.pdf
lecture 11 - GPU ray tracing (1).pdf
lecture 12 - GPU ray tracing (2).pdf
lecture 13 - BRDFs.pdf
lecture 14 - grand recap.pdf


Further slides will be made available after the lectures.


FILES

tmpl85.00a.zip - C++ framework for rapid graphics prototyping
template_csharp.zip - C# framework for graphics prototyping
LinuxMacWin.zip - Cross-platform version of the template, by Mathijs and Kevin
tmplCUDA.zip - C++ framework for CUDA application development
tmplOCL.zip - C++ framework for OpenCL application development



Practical Assignmentsback to navigation

The course includes a software project 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.

There are three milestones for this project:

  1.  Basics: during the first phase of the project, you will design and implement a framework with most of the low level functionality for the subsequent milestones. This includes scene management, ray generation, primitive intersection and simulation of optics.
  2.  Interactivity: based on the theory, you will transform the framework into an interactive renderer. The framework is extended with basic animation support.
  3.  For the final version of your project, you will be adding global illumination to the renderer. The default approach for this is a path tracer; however other options exist as well. You are free to chose your specific focus in this phase of the project, e.g. GPU rendering or advanced variance reduction.

The final grade for the software project is calculated as follows:

practical grade = (P1 + P2 + 2 * P3) / 4


(1) Ray Tracer

Tasks:

  • Setup a basic ray tracing framework for rendering a depth map for a hard-coded scene consisting of spheres and planes
  • Implement a complete Whitted-style ray tracer with reflection and optionally refraction (Fresnel) and absorption (Beer)

Full details in the assignment 1 document.

 
(2) Interactive Ray Tracer

Tasks:

  • Add a bounding volume hierarchy
  • Add a scene graph
  • Add a top-level BVH
  • Add ray packet traversal

Full details in the assignment 2 document.

 
(3) Global Illumination

Tasks (tentative):

  • Convert the Whitted-style ray tracer to a uni-directional path tracer
  • Add support for the MBVH
  • Add various variance reduction techniques

Full details in the assignment 3 document.


Gradingback to navigation

GRADING

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

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

Where

P >= 5.0 (before rounding)
E >= 5.0 (before rounding)
F >= 6 (after rounding).

RETAKES AND REQUIREMENTS

There will be an opportunity for a retake exam or a retake assignment. In order to qualify, a grade of at least 4.0 is required in both areas (final exam, practicals). The retake exam or assignment replaces the matching exam or assignment.

You have to contact the lecturer within two weeks after the final exam if you want to participate in the retake.

IMPORTANT: Due (recently refined) university regulations, you can only take the retake exam if you have both a high-enough but non-passing grade (i.e., at least 4.0 and less than 5.5).


Transfers from the previous lecture

If you are retaking this course it may be possible to transfer partial grades to this academic year. This is only possible for practical assignment grades; if you are retaking Advanced Graphics, you must retake the exam. Contact me for details.


Literature & Linksback to navigation

LITERATURE

  • T. Whitted. An Improved Illumination Model for Shaded Display. Commun. ACM, 23(6):343–349, 1980.
  • Interactive Rendering with Coherent Ray Tracing, Wald et al., 2001.
  • Large Ray Packets for Real-time Whitted Ray Tracing, Overbeck et al., 2008.
  • Fast Agglomerative Clustering for Rendering, Walter et al., 2008.
  • Heuristics for Ray Tracing using Space Subdivision, MacDonald & Booth, 1990.
  • Distributed Ray Tracing, Cook et al., 1984.
  • The Rendering Equation, Kajiya, 1986.
  • Importance Sampling for Production Rendering, pages 5-38.
  • Ray tracing on programmable graphics hardware. Purcell et al., 2002.
  • Interactive k-d tree GPU raytracing. Horn et al., 2007.
  • Understanding the Efficiency of Ray Tracing on GPUs. Aila & Laine, 2009.
  • Getting Rid of Packets - Efficient SIMD Single-Ray Traversal using Multi-branching BVHs. Wald et al., 2008.
  • Megakernels Considered Harmfull: Wavefront Path Tracing on GPUs. Laine et al., 2013.
  • Theory for Off-Specular Reflection from Roughened Surfaces. Torrance & Sparrow, 1967.

Recommended literature

Physically Based Rendering, Second Edition - From Theory to Implementation, Pharr & Humphreys. Morgan Kaufmann, 2010. ISBN-10: 0123750792.

PAPERS & ONLINE MATERIALS

Additional materials will be posted here in due time.


News Archiveback to navigation

Old posts

Jan 19:

Jan 16:

Jan 5:

  • CUDA and OpenCL templates have been added to the downloads section.

Jan 2:

Dec 20:

Dec 20:

  • P2 deadline is now: Thursday December 29, 23:59 (see mail).
  • An extra working college is scheduled for December 22, 13.15.
  • Slides on Variance Reduction are now available.
  • Assignment 3 details can now be downloaded.

Dec 9:

  • Some changes in the schedule.
  • P2 deadline is now Thursday December 22, 23:59.
  • Grades for assignment P1 now available.

Dec 8:

  • Slides for "Path Tracing" (lecture 7) can now be downloaded.

Dec 6:

Dec 5:

Nov 28:

Nov 28:

Nov 24:

Nov 22:

Nov 17:

Nov 3:

  • Initial upload of the 2016/2017 course website.
Old posts will be moved here to make room at the top of the page.