Beyond Programmable Shading


Mike Houston (AMD)

Aaron Lefohn (Intel)

Location and Schedule

Gates 400

TTh 12:50-2:05

Course Description:

There are strong indications that the future of interactive graphics programming is a more flexible model than today's OpenGL/Direct3D pipelines. Researchers and developers are combining flexible parallel graphics architectures and emerging parallel programming models with the traditional graphics pipeline to create new graphics pipelines and algorithms that significantly increase image quality. This course introduces students to the parallel graphics architectures and the parallel programming models that are fueling this change and teaches students how to create interactive rendering algorithms and pipelines that extend, or are completely different than, the traditional Direct3D/OpenGL interactive rendering pipeline. The course also introduces students to many of the unsolved rendering and programming model research topics in this field.

The first part of the course introduces parallel graphics architectures, parallel programming models for graphics, and parallel algorithm primitives. The second part of the course looks at cases studies from recent rendering algorithms and systems---discussing the mix of parallel programming constructs used, details of the graphics algorithms, and how the rendering pipeline and computation interact to achieve the technical goals. The focus is on what currently can be done, how it is done, and future trends. Topics include examples from game developers using these new capabilities in next-generation rendering engines, volumetric and hair lighting, alternate real-time rendering pipelines including ray tracing and micropolygon rendering, in-frame data structure construction, and complex image processing.

This is an advanced graphics course designed for graduate students interested in pursuing research in real-time rendering algorithms, graphics systems, or parallel programming systems. It is open to students who have at least an introductory background in computer graphics and computer systems and architecture. Two short analysis/exploration projects and one large, team-based final project must be completed.


  • Students should be comfortable with OpenGL and/or Direct3D and have had an introductory computer architecture course.
  • CS248 or equivalent introduction to compute graphics course

Syllabus (Tentative)



Background material (helpful but not required):

  • Physically Based Rendering: From Theory To Implementation---Pharr and Humphreys
    • (IMHO anyone doing graphics should own this book...)
  • Real-Time Rendering---Akenine-Moller, Haines, and Hoffman
  • Fundamentals of Computer Graphics---Shirley et al
  • Computer Architecture: A Quantitative Approach---Hennessy and Patterson
  • Patterns for Parallel Programming---Mattson, Sanders, and Massingill

Material for the course: