Beyond Programmable Shading
Mike Houston (AMD)
Aaron Lefohn (Intel)
Location and Schedule
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
Mar 29, Mar 31
Apr 5, 7
Apr 12, 14
Apr 19, 21
Apr 26, 28
May 3, 5
May 10, 12
Project Proposal Presentation/Review
May 17, 19
Justin Hensley - OIT and DOF
May 24, 26
Open Questions - Future of Graphics APIs And Real-Time Graphics
May 31, June 2
No class - Work on projects
Finals - June 6
Project Presentations Hewlett 103 7-10pm
Assignment 1: Hello AA
Assignment 2: Heterogeneous Load Balancing
- Term Project
- Proposal due May 12th and we'll discuss in class
- Team project (up to 3)
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:
- No text book currently exists for this material. Throughout the quarter, we will recommend reading from a combination of recent conference presentations, research papers, API documentation, and books.