Real-Time Computer Graphics Course ID 15772 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; and debugging, profiling, and accelerating graphics algorithms. Key Topics graphics, real-time rendering, GPUs, Vulkan, C++ Required Background Knowledge A grounding in computer graphics, including scene graphs, texture mapping, geometric representations, spatial data structures, the rendering equation; basic linear algebra and calculus proficiency; and experience with C++ programming. Course Relevance For students interested in going beyond the basic graphics course; particularly with a focus on techniques applicable to building real-time graphics systems. 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. 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. 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 Commitment average of 9hrs/week of programming and testing outside of class Course Link http://graphics.cs.cmu.edu/courses/15-472-s24/