SIGGRAPH 2006 Course 3 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

David Blythe
Microsoft Corporation

Larry Gritz
Senior Software Architect
NVIDIA Corporation

Mark Kilgard
Graphics Software Engineer
NVIDIA Corporation

Michael McCool
Associate Professor
University of Waterloo

Founder and Chief Scientist
RapidMind, Inc.

Fabio Pellacini
Assistant Professor
Dartmouth College

Thorsten Scheuermann
Senior Software Engineer
3D Application Research Group
ATI Research

Course Description:

Programmable GPUs are increasingly powerful computational machines. While GPU shading practitioners must still choose between graphics APIs and languages, their capabilities and syntax are amazingly similar. This course presents the latest GPU shading evolution in the next generation hardware, and highlights the features, similarities and differences between the different API, language and hardware choices through a series of instructive examples and demos presented by experts from academia and industry. Unlike previous courses, this year will focus on examples and general shading techniques that could be ported from shading language to shading language, but each presented in explicit detail using one of the API/language/hardware choices to allow course participants to learn general methods while judging the differences for themselves. In addition, we highlight the distance that still exists between production and GPU shading and show the inroads GPUs have made in production rendering.


Working knowledge of a modern real-time graphics API such as OpenGL or Direct3D.
Familiarity with the concepts of programmable shading and shading languages.


Shading Technology
8:30 Introduction (Olano) [ppt slides]
9:00 Direct3D 10 (Blythe)
10:15 Break
Shading Languages, Systems and Demos
10:30 RapidMind Development Platform (McCool)
11:20 OpenGL Shading Language (Olano) [ppt slides]
12:10 Lunch
1:45 Cg / NVIDIA (Kilgard) [pdf slides]
2:35 HLSL / ATI (Scheuermann) [pdf slides]
3:25 Break
GPUs in Production Rendering
3:45 GPU Production Animation (Wexler)
4:30 Interactive Cinematic Shading. Where are we? (Pellacini) [ppt slides]
5:15 Discussion and Q & A (All)


Chapter 1: Introduction (Marc Olano) 1 - 1
Chapter 2: Direct3D 10 (David Blythe) 2 - 1
Chapter 3: RapidMind Development Platform (Michael McCool)
Michael McCool, Writing Shaders and General Purpose GPU Programs Using the RapidMind™ Development Platform, April 2006 3 - 1
Chapter 4: OpenGL Shading Language (Marc Olano)
Marc Olano, A Brief OpenGL Shading Tutorial 4 - 1
Marc Olano, Modified Noise for Evaluation on Graphics Hardware, ACM SIGGRAPH/Eurographics Graphics Hardware 2006
Copyright ©2006 ACM
Reprinted with permission.
4 - 9
Marc Olano, OpenGL noise demo DVD
Chapter 5: Cg / NVIDIA (Mark Kilgard)
Mark J. Kilgard, "Cg in Two Pages" 5 - 3
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 - 5
Mark J. Kilgard, "A Follow-up Cg Runtime Tutorial for Readers of The Cg Tutorial" 5 - 17
Mark J. Kilgard, "Re-implementing the Follow-up Cg Runtime Tutorial with CgFX" 5 - 43
Mark J. Kilgard, "Comparison Tables for HLSL, OpenGL Shading Language, and Cg" 5 - 70
Emmett Kilgariff and Randima Fernando, "The GeForce 6 Series GPU Architecture", Excerpted from GPU Gems 2: Programming Techniques for High-Performance Graphics and General Purpose Computation, Matt Pharr and Randima Fernando, editors.
Copyright ©2005 NVIDIA
Reprinted with permission
5 - 77
NVIDIA GPU Historical data 5 - 94
Mark J. Kilgard, "NVIDIA OpenGL 2.0 Support" 5 - 96
Mark J. Kilgard, Cg Bump Demo DVD
Mark J. Kilgard, CgFX Bump Demo DVD
Chapter 6: HLSL / ATI (Thorsten Scheuermann)
Diego Nehab, Pedro V. Sander and John Isidoro, "The Real-Time Reprojection Cache", Princeton University Technical Report, 2006 6 - 1
Chapter 7: GPU Production Rendering (Larry Gritz)
Chapter 8: Interactive Cinematic Relighting (Fabio Pellacini) 8 - 1