Real-Time Graphics

Course ID 15472

Description Real-time computer graphics is about building systems that leverage modern CPUs and GPUs to produce detailed, interactive, immersive, and high-frame-rate imagery. Students will build a state-of-the-art renderer using C++ and the Vulkan API. Topics explored will include efficient data handling strategies; culling and scene traversal; multi-threaded rendering; post-processing, depth of field, screen-space reflections; volumetric rendering; sample distribution, spatial and temporal sharing, and anti-aliasing; stereo view synthesis; physical simulation and collision detection; dynamic lights and shadows; global illumination, accelerated raytracing; dynamic resolution, "AI" upsampling; compute shaders; parallax occlusion mapping; tessellation, displacement; skinning, transform feedback; debugging, profiling, and accelerating graphics algorithms.

Key Topics
graphics APIs, rendering, sampling, post-processing, Vulkan

Learning Resources
course web page with interactive lessons; example code; links to external course notes from (e.g.) SIGGRAPH's advances in real-time rendering course. Possibly: VR headsets available for check-out; heterogeneous cluster of high-performance computers for testing on different GPUs, CPUs.

Course Relevance
provides an advanced graphics course with a focus on the skills needed to build real-time graphics systems for modern computers. This is important for students interested in building games or special effects systems, creative tools, visualizations for complex scientific or engineering data, and training and testing systems for computer vision and robot control.

Course Goals
students will leave having built a high-performance renderer from the ground up with a modern graphics API; they will be experienced with testing and diagnosing performance bottlenecks in real-time graphics systems; they will have an understanding of the state of the art in real-time rendering techniques used in today's high-performance graphics systems.

Pre-required Knowledge
a grounding in computer graphics, including scene graphs, texture mapping, geometric representations, spatial data structures, the rendering equation; and experience with C++ programming.

Assessment Structure
60% four assignments that build and test a renderer piece-by-piece; 30% final project (add a technique from a recent SIGGRAPH paper to your renderer); 10% class participation.

Extra Time Commitments
average of 9hrs/week of programming and testing outside of class

Course Link
http://graphics.cs.cmu.edu/courses/15-472-s24/