? 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.2024 | 13: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.2024 | 13:00-15:00 (c.t.) | Johannes Unterguggenberger Selected topics of GPU programming, and synchronization using Vulkan |
19.03.2024 | 13: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.2024 | 13:00-14:00 (c.t.) | Assignment #1 solution presentation and group discussion (compulsory attendance) |
16.04.2024 | 13:00-15:00 (c.t.) | Lukas Herzberger Deferred Shading |
23.04.2024 | 13: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.2024 | 13:00-15:00 (c.t.) | Lukas Lipp Physically-Based Shading | Order-Independent Transparency |
07.05.2024 | 13:00-15:00 (s.t.) | Assignment #2 solution presentation and group discussion (compulsory attendance) |
14.05.2024 | 13: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.2024 | 13:00-15:00 (s.t.) | Assignment #3 solution presentation and group discussion (compulsory attendance) |
04.06.2024 | 13:00-15:00 (c.t.) | Lukas Lipp Real-Time Ray Tracing |
11.06.2024 | 13:00-15:00 (c.t.) | Michael Wimmer Shadow Algorithms |
18.06.2024 | 13:00-15:00 (c.t.) | Philipp Erler Physics |
19.06.2024 | 23:55 | Deadline for Assignment #4 |
25.06.2024 | 13: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 #1 | Synchronization, Normal Mapping Synchronization in Vulkan, tangent space, multiple light sources | 10 points (+10 bonus points) |
Assignment #2 | Hardware Tessellation PN-Triangles, adaptive tessellation, displacement mapping | 30 points (+20 bonus points) |
Assignment #3 | Deferred Shading, Physically-Based Shading Deferred shading, MSAA, tile-based deferred shading, physically-based shading | 30 points (+19 bonus points) |
Assignment #4 | Screen-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
Grade | Points |
---|---|
5 | 00 - 49 points |
4 | 50 - 62 points |
3 | 63 - 74 points |
2 | 75 - 87 points |
1 | 88+ points |
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