OpenGL is the most widely available library for creating interactive, computer graphics applications across all of the major computer operating systems. Its uses span from creating applications for scientific visualizations to computer-aided design to interactive gaming and entertainment and with each new version, its capabilities reveal the most up-to-date features of modern graphics hardware. This course provides an accelerated introduction to OpenGL programming with WebGL.
OpenGL has undergone numerous updates in recent years that 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 have been the introduction of shader-based rendering and the support for WebGL is all recent browsers. The use of programmable shaders. while introduced into the API many years ago, has expanded to subsume almost all functionality in OpenGL and the deprecating of immediate-mode functions. The support for WebGL, the JavaScript implementation of OpenGL ES 2.0 and the widespread use of HTML5 has brought OpenGL functionality to the Web. This course is an introduction to the shader-based WebGL.
This course starts with an overview of the WebGL pipeline and how WebGL executes within a browser environment. It then focuses on the basic shader-based pipeline which requires an application to provide both a vertex shader and a fragment shader. The course will introduce the OpenGL Shading Language (GLSL) and use it to develop simple vertex and fragment shaders. The course includes an overview of key graphics concepts---the synthetic camera model, transformations, viewing and lighting. Participants will see complete examples that include the required shaders and the interface to the application program and the HTML5 environment.
Level
Beginner
Prerequisites
To best experience the course, attendees should be able to read simple computer programs written in the C, C++, Java or JavaScript, and have a basic knowledge of computer graphics concepts (e.g., depth buffering, texture mapping). No previous experience writing graphics applications is required.
Intended Audience
Attendees who would reap the most benefit are application programmers, who want to develop graphical applications. An application programmer who has been writing applications with desktop OpenGL should also benefit from this course, as would educators who are contemplating switching their courses from desktop OpenGL to WebGL.
Presenter(s)
Edward Angel, University of New Mexico
Dave Shreiner, ARM Inc.
Ed Angel
Professor Emeritus of Computer Science, University of New Mexico
Ed Angel is Professor Emeritus of Computer Science at the University of New Mexico and Founding Director of the Art, Research, Technology and Science Laboratory (ARTS Lab). He has over 25 years of experience in research and teaching in computer graphics and image processing. He is the coauthor of the popular textbook: Interactive Computer Graphics: A Top-Down Approach using WebGL (7th Edition; Addison Wesley; 2014), and author of the OpenGL Primer (Third Edition; Addison Wesley; 2008). He has taught over 100 professional courses worldwide, including at SIGGRAPH.
Dave Shreiner
Director, Graphics and GPU Computing, ARM, Inc.
Dave Shreiner is computer graphics technologist at ARM, Inc., and has authored and presented courses on OpenGL and related technologies for over two decades. He is an author of The OpenGL Programming Guide (8th Edition; Addison Wesley; 2013); and co-author of the OpenGL ES 2.0 Programming Guide (1st Edition; Addison Wesley; 2009) and Interactive Computer Graphics: A Top-Down Approach using WebGL (7th Edition; Addison Wesley; 2014). Dave was Conference Chair for SIGGRAPH 14.