GPU-Pro (Computer Games Laboratory (IN7106) / Informatics Master Practical (IN2106))

Time, Place:

Mo. 14:00 - ca. 16:00, in room: MI 02.13.008

Supervision: Prof. Rüdiger Westermann

Mandatory kick-off metting: Monday, October 9., 2023, from 10-11 a.m. in room: MI 02.13.010


This course is open to master students in Informatics and Informatics: Games Engineering. The module comprises lectures and programming exercises.

Final pres: The final presentations of the results will take place at the end of the semester.
Prerequisites: Realtime Computer Graphics

Content and Organization

In this practical you will learn about realtime graphics programming for computer games. You will learn how to program a GPU using the Vulkan Graphics API. Starting with simple things like opening a window and drawing texture mapped geometry, we will then look at how to handle ressource buffers in memory, do general compute, write vertex and pixel shaders, perform raytracing using RT cores as well as volumetric ray-casting to render things like clouds and smog. 

Every 1-2 weeks we will have a meeting were we introduce a new assignment and the functionality required to solve this assignment. We will also hint on specific difficulties in the previous assignments and demonstrate the solution. The following assignments are planned:

Week 1: Code setup, first "Hello Triangle" program
Week 2: Buffers, textures, samplers, forward rendering
Week 3: Textures as render targets, deferred rendering, post processing
Week 4: Geometry batching, multi draw indirect, minimizing state change
Week 5: Compute shaders, GPGPU, compute based culling
Week 6: Basics of temporal techniques, simple raytracing
Week 7: Custom data structures, ray tracing acceleration, 
Week 8: Hardware accelerated ray queries, alternative rendering pipelines, volume rendering  


- We will use Discord for communication during the practical course:
- The practical will NOT take place on October 16 due to the overlapping information sessions for the first semester students.