Shader programming has become an indispensable part of graphics application development. However, learning to program shaders is difficult, especially when it comes to understanding the effect of shader parameters. The course presents shader development from an interactive standpoint. Attendees will be given free software so that they can follow and interact with our examples.
The course will discuss vertex, fragment, geometry, and tessellation shaders, as well as shader-specific theory and the GLSL 4.0 shader language. We will review the graphics pipeline, show what features are exposed in shaders, and demonstrate how shaders fit into the pipeline operations. We will introduce each class of shaders, show examples with Glman, and use the examples to discuss details of the concept.
The OpenGL 4.0 and GLSL 4.0 specifications were released in 2010. While most attendees will not yet have compatible hardware on their laptops, we will show what is new in this release and what extra functions can be done with it.
Level
Intermediate
Intended Audience
This course is intended for graphics software developers who need to write shader code and for educators who need to teach it.
Prerequisites
It is expected that attendees will have some knowledge of graphics programming and OpenGL. To that end, we have been coordinating courses content with Ed Angel and Dave Shreiner so that our course dovetails with the OpenGL 4.0 course.
Course Schedule
Session 1: 9:00-10:30
09:00-09:05 Mike Bailey: Welcome and course context
09:05-09:15 Steve Cunningham: Review of the graphics pipeline
09:15-09:30 Steve Cunningham: Basic shader concepts
09:30-09:45 Steve Cunningham: Coordinates and transformations
09:45-10:00 Steve Cunningham: Introduction to the OpenGL Shading Language (GLSL)
10:00-10:15 Steve Cunningham: Using GLSL Variables
10:15-10:30 Mike Bailey: The glman tool
10:30-10:45 Mike Bailey: Vertex Shaders
Break: 10:45-11:00
Session 2: 11:00-12:45
11:00-11:15 Mike Bailey: Fragment Shaders
11:15-11:30 Mike Bailey: Noise
11:30-11:45 Mike Bailey: Textures
11:45-12:00 Steve Cunningham: Image manipulation in shaders
12:00-12:30 Steve Cunningham: Geometry and Tessellation Shaders
12:30-12:45 Both: Question and Answer
Presenter(s)
Mike Bailey is a Professor in Computer Science at Oregon State University (OSU). Mike has worked at Sandia National Labs, Purdue University, Megatek Corporation, and the San Diego Supercomputer Center at University of California, San Diego (UCSD). Mike has taught numerous classes at conferences (SIGGRAPH, SIGGRAPH Asia, Special Interest Group on Computer Science Education (SIGCSE), Institute of Electrical and Electronics Engineers (IEEE) Visualization and Supercomputing), at the college level, and commercially. Mike was five times voted Computer Science Teacher of the Year by UCSD Computer Science seniors. He was also voted Most Enthusiastic Professor by OSU students and received the Austin Paul teaching award from OSU’s College of Engineering.
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 UK, China, and Austria. He has given computer graphics teaching workshops at the SIGCSE conference and in Brazil, Botswana, and Mexico, and served as Chair of both the SIGGRAPH Education Committee and the Eurographics Education Board. He has authored, co-authored, and co-edited a total of seven books, mostly on computer graphics-related topics, including a recent textbook for a computer graphics course for beginners.