GPU Programming for Video Games
(2-0-3-3)
CMPE Degree: This course is Selected Elective for the CMPE degree.
EE Degree: This course is Selected Elective for the EE degree.
Lab Hours: 0 supervised lab hours and 3 unsupervised lab hours.
Technical Interest Groups / Course Categories: Threads / ECE Electives
Course Coordinator: Aaron D Lanterman
Prerequisites: ECE 2035 [min C] or ECE 2036 [min C] or CS 2110 [min C] or CS 2261 [min C]
Catalog Description
3-D graphics pipelines. Physically-based rendering. Game engine architectures. GPU architectures. Graphics APIs. Vertex and pixel shader programming. Post-processing effects. Deferred rendering.Textbook(s)
Course Outcomes
Write shader code to process 3-D geometry, calculate lighting, and postprocess images
Articulate the advantages of physically-based rendering
Summarize the operation of GPU architectures in their native application of computer graphics
Recognize the conceptual components common in most real-time game engines and graphics APIs
Make tradeoffs between per-pixel vs. per-vertex lighting and forward vs. deferred rending
Strategic Performance Indicators (SPIs)
N/A
Topic List
- Introduction and historical context
- Classic 3-D rendering pipeline: geometry transformation, lighting, texturing
- Physically-based rendering (Cook-Torrance BRDFs, linear vs. gamma space lighting)
- Overview of 3-D APIs
- Simulation loops and game engine components
- Object-oriented and component-oriented game engines
- GPU architectures and GPU assembly code
- Introduction to shading languages (HLSL/Cg), vertex and pixel shaders
- Per-pixel vs. per-vertex lighting
- Advanced 3-D shading effects (ex: bump mapping, environment mapping)
- Postprocessing effects (ex: bloom, motion blur)
- Deferred rendering
- Screen space techniques (ex: ambient occlusion)