Algorithmen für die Echtzeitgraphik

This course page describes the lecture of Sommersemester 2024. It is will be held next time in Sommersemester 2024. See list of other semesters.

? It's been a blast. ?

Subject and Aim

The course teaches fundamental and time-proven real-time rendering techniques like tessellation, deferred shading, screen-space effects, real-time global illumination, physically-based rendering, and how to implement it efficiently.

The goal is to give you a firm understanding of some fundamental building blocks of a modern real-time rendering engine, and how to program on modern massively parallel GPUs.

Communication

The whole communication runs over the TUWEL course. Information regarding the exercises are also available on TUWEL.

Please register for the course on the TISS-Page!

In case of problems with TISS, TUWEL and for personal matters, feel free to send us an email: artr@cg.tuwien.ac.at

Schedule

The following table lists all dates for lectures, assignment deadlines, and solution presentation and group discussion events.
All of these will take place on-site in Seminar Room FAV 05 (formerly: Seminarraum 186), in Favoritenstr. 9-11 / 5th floor. Hybrid mode is not planned, i.e., you are expected to be there in person. We plan to record all lectures and make the recordings available on TUWEL. Please mind that for the solution presentation and group discussion events, your physical presence is mandatory!

01.03.2024

Participants are encouraged to make themselves familiar with Vulkan, since all assignments will be based on it. No in-depth knowledge is required, though, since a convenience framework is provided. Suggested learning resource: Episodes 1--5 from the Vulkan Lecture Series
05.03.202413:00-15:00 (c.t.)Johannes Unterguggenberger 
Introduction, rendering pipeline re-cap, normal mapping re-cap,
introduction to the exercise framework.

06.03.2024

Assignment #1 goes online
12.03.202413:00-15:00 (c.t.)Johannes Unterguggenberger
Selected topics of GPU programming, and synchronization using Vulkan
19.03.202413:00-15:00 (c.t.)Johannes Unterguggenberger
GPU tessellation and selected geometry topics
22.03.2024

23:55

Deadline for Assignment #1

23.03.2024

Assignment #2 goes online
09.04.202413:00-14:00 (c.t.)Assignment #1 solution presentation and group discussion (compulsory attendance)
16.04.202413:00-15:00 (c.t.)Lukas Herzberger
Deferred Shading
23.04.202413:00-15:00 (c.t.)Markus Schütz
Rendering Point Clouds
24.04.2024

23:55

Deadline for Assignment #2

25.04.2024

Assignment #3 goes online
30.04.202413:00-15:00 (c.t.)Lukas Lipp
Physically-Based Shading | Order-Independent Transparency
07.05.202413:00-15:00 (s.t.)Assignment #2 solution presentation and group discussion (compulsory attendance)
14.05.202413:00-15:00 (c.t.)Christian Freude
Screen-Space Effects
22.05.2024

23:55

Deadline for Assignment #3

23.05.2024

Assignment #4 goes online
28.05.202413:00-15:00 (s.t.)Assignment #3 solution presentation and group discussion (compulsory attendance)
04.06.202413:00-15:00 (c.t.)Lukas Lipp
Real-Time Ray Tracing
11.06.202413:00-15:00 (c.t.)Michael Wimmer
Shadow Algorithms
18.06.202413:00-15:00 (c.t.)Philipp Erler
Physics
19.06.2024

23:55

Deadline for Assignment #4
25.06.202413:00-15:00 (s.t.)Assignment #4 solution presentation and group discussion (compulsory attendance)

 

Assignments

The lecture is accompanied by assignments that cover advanced but fundamental techniques of real-time rendering. Assignments are programming exercises in frameworks based on (modern) C++ and Vulkan. Ready-to-use versions of the frameworks and the assignments will be provided for Visual Studio 2022 on Windows, which we provide full support for. Development on Linux via CMake should be possible as well, but it is the responsibility of participants who chose this path to submit solutions which also work on Windows.

All assignments will be available on TUWEL at the dates stated above.
 

Assignment #1Synchronization, Normal Mapping
Synchronization in Vulkan, tangent space, multiple light sources
10 points (+10 bonus points)
Assignment #2Hardware Tessellation
PN-Triangles, adaptive tessellation, displacement mapping
30 points (+20 bonus points)
Assignment #3Deferred Shading, Physically-Based Shading
Deferred shading, MSAA, tile-based deferred shading, physically-based shading
30 points (+19 bonus points)
Assignment #4Screen-Space Effects
Screen-space ambient occlusion, HDR rendering + tone mapping, screen-space reflections, temporal anti-aliasing, real-time ray tracing
30 points (+22 bonus points)


Each assignment will feature a set of basic tasks and bonus tasks. Solving bonus tasks will allow you to earn more than 100% of the regular point maximum for this assignment. With this, you may compensate lower percentages in other assignments.

Grading

Final grading is based on the points you acquire for the 4 assignments, according to the following scheme, AND on your participation in the "solution presentation and group discussion" events (compulsory attendance!).
GradePoints
500 - 49 points
450 - 62 points
363 - 74 points
275 - 87 points
188+ points
Participating in the "solution presentation and group discussion" events is mandatory. In order to get a positive grade (i.e. 4 or better), you have to present your overall solution for an assignment, your approach to a task, or some implementation-specifics of your submission at least once.

To be perfectly clear on this: You will not get a positive grade if you do not present in one of those four events, even if you have 50+ points.

Note: Your participation and constructive contribution to the group discussions will influence your final grade. Constructive participation can improve your final grade, while a lack of participation will impair your final grade. It is not important that you present correct solutions -- it is just your participation that counts. These events replace individual submission talks, so use them to show us that you are the author of your submitted solutions and let's learn from each other in profound group discussions.
 

Course materials

  • Real-Time Rendering, Fourth Edition, by Tomas Akenine-Möller, Eric Haines, Naty Hoffman, Angelo Pesce, Michal Iwanichi, and Sébastien Hillaire, A K Peters/CRC Press, 2018
  • OpenGL Insights, First Edition by Patrick Cozzi and Christophe Riccio (July 23, 2012)
  • Graphics Shaders: Theory and Practice, Second Edition by Mike Bailey and Steve Cunningham (Nov 8, 2011)
  • OpenGL 4 Shading Language Cookbook, Third Edition, by David Wolff, Packt Publishing, 2018