An Introduction to Graphics Programming Using WebGL


An Introduction to Graphics Programming Using WebGL

Wednesday, 27 July, 9:00 am - 12:15 pm, Anaheim Convention Center, Ballroom A

OpenGL and its derivatives are the most widely available APIs for creating interactive computer graphics applications across all major platforms. Their uses span virtually all application areas and reveal the most up-to-date features of modern graphics hardware.

In recent years, OpenGL has undergone numerous updates that have fundamentally changed how programmers interact with the application-programming interface (API). The most notable of those changes has been the change to shader-based rendering, which has subsumed almost all functionality of older versions of the API.

Over the past two years, there has been extraordinary interest in WebGL, the JavaScript implementation of OpenGL ES 2.0. WebGL is fully shader-based and allows applications to be hosted on web servers but execute locally in a web browser. It can use the full power of the local GPU, and its integration with the wide variety of web packages and technologies allows creation of complex and engaging web-based applications. Although WebGL is “simpler” than recent versions of desktop OpenGL, there are some significant differences between using WebGL and desktop OpenGL. Working within a browser brings up a variety of issues that have not been covered in previous introductory courses.

This course provides an accelerated introduction to programming with WebGL. It begins with an overview of the WebGL pipeline, focusing on the basic shader-based pipeline, which requires an application to provide both a vertex shader and a fragment shader, then discusses the key differences between working with WebGL and other OpenGL variants, including the difference in execution models and going from C/C++ to JavaScript. The course also summarizes WebGL 2.0 and some profiling and debugging tools.




Ability to read simple computer programs written in C, C++, Java, or JavaScript. Basic knowledge of computer graphics concepts (for example, depth buffering and texture mapping). Not required: previous experience writing graphics applications.

Intended Audience

Application programmers who want to develop graphical applications but may have limited experience with computer graphics. Application programmers who have been writing applications with desktop OpenGL or OpenGL ES 2.0. Educators who are contemplating switching their courses from desktop OpenGL to WebGL.


Edward Angel
University of New Mexico

Dave Shreiner
Unity Technologies