- For Attendees
- Co-Located Events
- Computer Animation Festival
- Exhibitor Tech Talks & Sessions
- General Information
- Featured Speakers
- Special Sessions
- Technical Papers
- Technical Sketches & Posters
- Travel & Housing
- SIGGRAPH Asia 2010 e-Newsletter
- For Presenters
- For Volunteers
- For Exhibitors & Sponsors
- For the Media
Creating Amazing Effects With GPU Shaders
Saturday, 18 December | 12:15 am - 4:00 am | Room 308B/C
Shader programming has become an indispensible part of graphics application development. But learning to program shaders is difficult, and it is especially difficult to understand the effect of shader parameters. This course presents shader development from an interactive standpoint. It discusses vertex, fragment, and geometry shaders, shader-specific theory, and the GLSL 4.0 shader language, then reviews the graphics pipeline, including features rarely taught in beginning courses, but exposed in shaders, and shows how shaders fit into the pipeline operations. Each class of shaders is introduced with glman examples that explain details of the concept.
The OpenGL 4.0 and GLSL 4.0 specifications were recently released. While most attendees will not yet have compatible hardware on their laptops, the course explains what is new in this release and the extra functions it can perform. Attendees receive free software so they can follow along and interact with examples.
Faculty or other attendees who want to learn about shaders to create special effects for application development or want to teach a computer graphics course that includes shader concepts.
Presented in English / 영어로 발표 됨
Basic understanding of the steps in the graphics pipeline and introductory knowledge of math for computer graphics (such as matrix multiplication).
Welcome and Course Context - Bailey
Review of the Graphics Pipeline - Cunningham
For each block: what are the inputs and what are the outputs?
Basic Shader Concepts - Cunningham
What blocks in the pipeline do the shaders replace or augment?
Functions of vertex, tessellation, geometry, and fragment shaders
Relations between vertex, tessellation, geometry, and fragment shaders
Coordinates and transformations - Cunningham
Coordinate systems: Model, World, Eye, Clip, NDC, Screen
Normal transformation matrix
Modeling and viewing transformations, viewing volumes, normals
Introduction to the OpenGL Shading Language (GLSL) - Cunningham
Similarities to, and differences from, C++
Using GLSL Variables - Cunningham
The roles of Uniform and Attribute variables in the shader pipeline
The roles of Out and In variables between shaders
The glman Tool - Bailey
How to use glman
Vertex Shaders - Bailey
Surface coloring in model coordinates versus eye coordinates
Fragment Shaders - Bailey
Shading: flat, smooth, Phong
Noise - Bailey
Positional noise, gradient noise
Fractional Brownian Motion (FBM, 1/f noise, octaves), turbulence.
Noise in glman
Textures - Bailey
Texture data: unsigned byte, floating point, 2D, 3D, parameters, binding
Texture application: texture units, multitextures, sampler functions
Texture techniques: cube maps. reflection, refraction
Procedural textures : noise and bump mapping
Image Manipulation in Shaders - Cunningham
Geometry Shaders - Cunningham
Inputs and outputs, built-in variables, built-in functions
Questions and Answers
Oregon State University
Brown Cunningham, Associates
Mike Bailey, professor of computer science at Oregon State University, holds a PhD from Purdue University. He has worked at Sandia National Labs, Purdue University, Megatek Corporation, and the San Diego Supercomputer Center. His extensive experience with SIGGRAPH courses includes teaching the Introduction to Computer Graphics course since 1995. He has taught numerous classes at conferences (SIGGRAPH, SIGCSE, IEEE Visualization, Supercomputing), at the college level (a total of over 3,800 students), and commercially. Senior computer science students at the University of California, San Diego named him Computer Science Teacher of the Year five times.
Steve Cunningham has been actively engaged in computer graphics education for many years. He has organized computer graphics education workshops developed by SIGGRAPH and Eurographics in Spain, Portugal, the United Kingdom, China, and Austria. He has given computer graphics teaching workshops at the SIGCSE conference and in Brazil, Botswana, and Mexico, and served as dhair of both the SIGGRAPH Education Committee and the Eurographics Education Board. He has authored, co-authored, or co-edited seven books, mostly on computer graphics-related topics, including a recent textbook for a beginning computer graphics course.