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 |
Begin: | Mandatory kick-off metting: Monday, October 9., 2023, from 10-11 a.m. in room: MI 02.13.010 |
Details: | 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
Updates
We will use Discord for communication during the practical course: https://discord.gg/37ZCkmkD