Monday 12 December | 09:00-18:00 | Room S224 + S225
OpenGL is the most widely available library for creating interactive computer graphics applications across all major computer operating systems. Its uses span from creating applications for scientific visualizations to computer-aided design and interactive gaming and entertainment. With each new version, its capabilities reveal the most up-to-date features of modern graphics hardware. This course provides an accelerated introduction to programming OpenGL, emphasizing the most modern methods for using the library. OpenGL has undergone numerous updates in recent years which have fundamentally changed how programmers interact with the application programming interface (API), and the skills required for being an effective OpenGL programmer. The most notable of those changes was the introduction of shader-based rendering. Introduced into the API many years ago, shader-based rendering has expanded to subsume almost all functionality in OpenGL. An attendee of the course will be introduced to each of the shader stages in OpenGL, along with methods for specifying data to be used in rendering with OpenGL. While there have been numerous courses on OpenGL in the past, the recent sequence of revisions to the API – culminating in OpenGL version 4.1 – have provided a wealth of new functionality and features to create ever-richer content. This course builds from demonstrating the use of the most fundamental shader-based OpenGL pipeline, to introducing all of the latest shader stages.
Level
Beginner
Intended Audience
Attendees who would reap the most benefits from this introductory course are application programmers who want to develop graphical applications but may have limited experience with computer graphics. An application programmer who has been writing applications with OpenGL using the older fixed-function pipeline should also benefit from this course.
Prerequisites
To best experience the course, attendees should be able to read simple computer programs written in the C language, and have a basic knowledge of computer graphics concepts (for example, depth buffering and texture mapping). No previous experience in writing graphics applications is required.
Course Schedule
Session 1: 9:00-10:45
09:00-09:15 Greeting and course overview
09:15-9:40 OpenGL Pipeline Introduction
09:40-10:10 A Prototype Application
10:10-10:45 The OpenGL Shading Language (GLSL)
Break: 10:45-11:00
Session 2: 11:12:45
11:00-11:40 Overview of Basic Graphics Concepts
11:40-12:45 The Fundamental Pipeline – Part 1: vertex shading
Break: 12:45-14:15
Session 3: 14:15-16:00
14:15-15:20 The Fundamental Pipeline – Part 2: fragment shading
15:20-16:00 OpenGL ES 2.0 and WebGL
Break: 16:00-16:15
Session 4: 16:15-18:00
16:15-16:45 Advanced Rendering Options
16:45-17:15: The Advanced Pipeline – Part 1: tessellation shading
17:15:17:45 The Advanced Pipeline – Part 2: geometry shading
17:45-18:00 Wrap-up and Q&A
Presenter(s)
Ed Angel is Professor Emeritus of Computer Science at the University of New Mexico and the Founding Director of the Art, Research, Technology and Science Laboratory. He has over 25 years of experience in research and teaching in computer graphics and image processing. He is co-author of the popular textbook: Interactive Computer Graphics: A Top-Down Approach using OpenGL (6th Edition; Addison Wesley; 2011), and author of the OpenGL Primer (Third Edition; Addison Wesley; 2008). He has taught over 100 professional courses worldwide, including courses at SIGGRAPH.
Dave Shreiner has been involved in presenting OpenGL related courses at SIGGRAPH since 1998. He is an author of The OpenGL Programming Guide (7th Edition; Addison Wesley; 2010), and co-author of the OpenGL ES 2.0 Programming Guide (Addison Wesley; 2009) and Interactive Computer Graphics: A Top-Down Approach using OpenGL (6th Edition; Addison Wesley; 2011). Dave has authored and presented courses on OpenGL for almost two decades worldwide. He authored the original introductory OpenGL course taught at Silicon Graphics Computer Systems (SGI), creators of the OpenGL API.