Modern OpenGL: Its Design and Evolution

Full Conference  One-Day Full Conference

Saturday, 13 December, 13:45 - 17:30
Room 311, 312
Level: Intermediate

A long-time implementer of OpenGL and the system's original architect explain OpenGL's design and evolution. OpenGL's state machine is now a complex data flow with multiple programmable stages. In this course, OpenGL practitioners can expect candid design explanations, advice for programming modern GPUs, and insight into OpenGL's future.

OpenGL was conceived in 1991 to provide an industry standard for programming the hardware graphics pipeline. The original design has evolved considerably over the last 17 years. Whereas capabilities mandated by OpenGL such as texture mapping and a stencil buffer were present only on the world's most expensive graphics hardware in 1991, now these features are completely pervasive in PCs and are even available in several hand-held devices. Over that time, OpenGL's original fixed-function state machine has evolved into a complex data flow including several application-programmable stages. And the performance of OpenGL has increased from 100x to over 1,000x in many important raw graphics operations.

This course explains how the modern (post-2006) graphics hardware pipeline is exposed through OpenGL. Kurt Akeley presents his personal retrospective on OpenGL's development. Attendees learn nine ways to write better OpenGL programs and how modern OpenGL implementations operate. In conclusion, the course assesses OpenGL's future evolution.

Whether you program with OpenGL or program with another API such as Direct3D, this course gives you new insights into graphics hardware architecture, programmable shading, and how to take maximum advantage of modern GPUs.

Prerequisites
Familiarity with the OpenGL graphics system. Familiarity with other graphics APIs such as Direct3D is helpful. The course assumes that attendees are familiar with concepts such as rasterization, shading, texturing, and vertex transformation.

Intended Audience
Graphics practitioners who want to better understand the modern 3D graphics hardware pipeline and its evolution as expressed through OpenGL. OpenGL programmers who wan to learn how to update their programming practices to improve the performance and cross-platform portability of their OpenGL applications.

Instructors
Mark Kilgard
NVIDIA Corporation

Kurt Akeley
Microsoft Research Silicon Valley

Instructor Bios

Mark Kilgard
Mark Kilgard developed the original OpenGL driver for NVIDIA's first GeForce GPU and specified many key extensions to enhance OpenGL's functionality. He authored the book on OpenGL for the X Window System and co-authored the book on the Cg shading language. He works on Cg to encourage cross-platform shader authoring. He was recently named a Distinguished Inventor at NVIDIA. In his previous work at SGI, he developed the OpenGL Utility Toolkit, better known as GLUT, to popularize OpenGL and facilitate portable OpenGL examples and demos. At the annual SIGGRAPH conference, he has presented in eight courses and co-authored two papers.

Kurt Akeley
Kurt Akeley led the development of OpenGL at SGI, a company he co-founded. He co-authored the OpenGL specification and worked with other companies to establish OpenGL as an industry-wide standard. He also led development of several SGI high-end graphics systems, including GTX, VGX, and RealityEngine. While at NVIDIA, he co-developed the Cg shading language for programming graphics hardware. He completed his PhD at Stanford in 2004. Now at Microsoft, he researches computer graphics and computer architecture.