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

  1. Introduction and historical context
  2. Classic 3-D rendering pipeline: geometry transformation, lighting, texturing
  3. Physically-based rendering (Cook-Torrance BRDFs, linear vs. gamma space lighting)
  4. Overview of 3-D APIs
  5. Simulation loops and game engine components
  6. Object-oriented and component-oriented game engines
  7. GPU architectures and GPU assembly code
  8. Introduction to shading languages (HLSL/Cg), vertex and pixel shaders
  9. Per-pixel vs. per-vertex lighting
  10. Advanced 3-D shading effects (ex: bump mapping, environment mapping)
  11. Postprocessing effects (ex: bloom, motion blur)
  12. Deferred rendering
  13. Screen space techniques (ex: ambient occlusion)