SIGGRAPH 2005 Course 37 Notes

GPU Shading and Rendering

(Jump to table of contents)
(See the original proposal for this course)


Marc Olano
Assistant Professor
Department of Computer Science and Electrical Engineering

Avi Bleiweiss
Software Architect
ATI Research

Larry Gritz
Senior Software Architect

John C. Hart
Associate Professor
Department of Computer Science
University of Illinois, Urbana-Champaign

Mark Kilgard
Graphics Software Engineer

Michael McCool
Associate Professor
University of Waterloo

Pedro Sander
Senior Software Engineer
ATI Research

Course Description:

Real-time programmable shading was once seen as a distant dream. When the first version of this course was offered five years ago, real-time shading was possible, but only with one-of-a-kind hardware or by combining the effects of tens to hundreds of rendering passes. Today, almost every new computer comes with graphics hardware capable of interactively executing shaders of scores to hundreds of instructions. This course provides an overview of everything you need to know to be an expert in hardware shading: the basics of graphics hardware and software; commercial, standard and open-source shading languages; new developments using GPUs to accelerate high-quality rendering; and the latest shading hardware capabilities as presented by the vendors themselves. The course concludes with the popular panel-style question and answer session, where participants can ask questions of any presenter or suggest topics of discussion.


This course assumes working knowledge of a modern real-time graphics API such as OpenGL or Direct3D. The participants are also assumed to be familiar with the concepts of programmable shading and shading languages.


Shading Technology
8:30 Introduction (Olano)
8:40 3D Graphics Hardware Architectures (Olano)
9:25 Shading Compilers (Bleiweiss)
10:15 Break
Shading Languages
10:30 OpenGL Shading Language (Olano)
10:55 Cg (Kilgard)
11:20 HLSL (Sander)
11:45 Shader Metaprogramming with Sh (McCool)
12:15 Lunch
GPU Rendering
1:45 Rendering Algorithms (Hart)
2:35 GPU Production Rendering (Gritz)
3:30 Break
Hardware Systems
3:45 ATI (Sander)
4:25 NVIDIA (Kilgard)
5:05 Discussion and Q & A (All)


Chapter 1: Introduction (Marc Olano) 1 - 1
Chapter 2: 3D Graphics Hardware Architecture (Marc Olano)
Marc Olano, "Ignoring Hardware Differences" 2 - 1
Yi Wang, Marc Olano, Uzi Vishkin and Ronny Kupershtok, "XMT: A PRAM Architecture for Graphics Hardware" 2 - 7
Chapter 3: Shading Compilers (Avi Bleiweiss) 3 - 1
Chapter 4: OpenGL Shading Language (Marc Olano) 4 - 1
Chapter 5: Cg (Mark Kilgard)
Mark J. Kilgard, "Cg in Two Pages" 5 - 2
William R. Mark, R. Steven Glanville, Kurt Akeley and Mark J. Kilgard, "Cg: A System for Graphics Hardware in a C-like Language", ACM Transactions on Graphics, v22n3 (Proceedings of SIGGRAPH 2003), July 2003
Copyright ©2003 ACM
Reprinted with permission
5 - 4
Mark J. Kilgard, "A Follow-up Cg Runtime Tutorial for Readers of The Cg Tutorial" 5 - 16
Mark J. Kilgard, "Comparison Tables for HLSL, OpenGL Shading Language, and Cg" 5 - 42
Mark J. Kilgard, Cg Bump Demo
Chapter 6: DirectX/HLSL (Pedro Sander)
Jason Mitchell, "DirectX® 9 High Level Shading Language", excerpted from ShaderX2 – Introduction and Tutorials with DirectX 9.0 6 - 1
Chapter 7: Shader Metaprogramming with Sh (Michael McCool)
Michael McCool, "A Short Introduction to Sh" 7 - 1
Chapter 8: Rendering Algorithms (John Hart)
Nathan A. Carr, Jessie D. Hall and John C. Hart, "The Ray Engine", Proceedings of Graphics Hardware 2002
Copyright ©2002 The Eurographics Association
Reprinted with permission
8 - 1
Nathan A. Carr, Jessie D. Hall and John C. Hart, "GPU Algorithms for Radiosity and Subsurface Scattering", Proceedings of Graphics Hardware 2003
Copyright ©2003 The Eurographics Association
Reprinted with permission
8 - 11
Peter-Pike Sloan, Jesse Hall, John Hart and John Snyder, "Clustered Principal Components for Precomputed Radiance Transfer", ACM Transactions on Graphics, v22n3 (Proceedings of SIGGRAPH 2003), July 2003
Copyright ©2003 ACM
Reprinted with permission
8 - 20
Chapter 9: GPU Production Animation (Larry Gritz) 9 - 1
Chapter 10: ATI Shading (Pedro Sander)
Pedro V. Sander, John R. Isidoro and Jason L. Mitchell, "Computation Culling with Explicit Early-Z and Dynamic Flow Control" 10 - 1
Chapter 11: NVIDIA Shading (Mark Kilgard)
"The GeForce 6 Series GPU Architecture", excerpted from GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation
Reprinted with Permission
11 - 1
NVIDIA Corporation, "NVIDIA GPU Historical Data" 11 - 19
Mark J. Kilgard, "NVIDIA OpenGL 2.0 Support" 11 - 21