OpenGL[tm] (GL for Graphics Library[tm]) is a software interface to graphics hardware. This interface consists of several hundred functions that allow you, a graphics programmer, to specify the objects and operations needed to produce high-quality color images of three-dimensional objects. Many of these functions are actually simple variations of each other, so in reality there are only 120 substantially different functions.

As complements to the core set of OpenGL functions, the OpenGL Utility Library (GLU) and the OpenGL Extension to the X Window System[tm] (GLX) provide useful supporting features. This manual explains what all these functions do; it has the following chapters:

What You Should Know Before Reading This Manual

This manual is designed to be used as the companion reference volume to the OpenGL Programming Guide by Jackie Neider, Tom Davis, and Mason Woo (Reading, MA: Addison-Wesley Publishing Company). The focus of this Reference Manual is how OpenGL works, while the Programming Guide's focus is how to use OpenGL. For a complete understanding of OpenGL, you need both types of information. Another difference between these two books is that most of the content of this Reference Manual is organized alphabetically, based on the assumption that you know what you don't know and therefore need only to look up a description of a particular command; the Programming Guide is organized like a tutorial—it explains the simpler OpenGL concepts first and builds up to the more complex ones. Although the command descriptions in this manual don't necessarily require you to have read the Programming Guide, your understanding of the intended usage of the commands will be much more complete if you have read it. Both books also assume that you know how to program in C.

If you don't have much of a computer graphics background, you should certainly start with the Programming Guide rather than this Reference Manual. Basic graphics concepts are not explained in this manual. You might also want to look at Computer Graphics: Principles and Practice by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes (Reading, MA: Addison-Wesley Publishing Company). That book is an encyclopedic treatment of the field of computer graphics. Another, gentler introduction to the subject can be found in 3D Computer Graphics: A User's Guide for Artists and Designers by Andrew S. Glassner (New York: Design Press).


This manual owes its existence to many people. Kurt Akeley of Silicon Graphics®, Sally Browning of SABL Productions, and Kevin P. Smith also of Silicon Graphics wrote most of the material, with contributions from Jackie Neider and Mark Segal (both from Silicon Graphics). The OpenGL Graphics System: A Specification (coauthored by Mark and Kurt), The OpenGL Graphics System Utility Library (written by Kevin), and OpenGL Graphics with the X Window System (written by Phil Karlton) served as source documents for the authors. Phil Karlton and Kipp Hickman assisted by helping to define and create OpenGL at Silicon Graphics, with help from Raymond Drewry of Gain Technology, Inc., Fred Fisher of Digital Equipment Corp., and Randi Rost of Kubota Pacific Computer, Inc. The members of the OpenGL Architecture Review Board—Murray Cantor and Linas Vepstas from International Business Machines, Paula Womack and Jeff Lane of Digital Equipment Corporation, Murali Sundaresan of Intel, and Chuck Whitmer of Microsoft—also contributed. Thad Beier together with Seth Katz and the Inventor team at Silicon Graphics created the cover image. Kay Maitz of Silicon Graphics, Arthur Evans of Evans Technical Communications, and Susan Blau provided production assistance; Tanya Kucak copyedited the manual. Finally, this book wouldn't exist unless OpenGL did, for which all the members of the OpenGL team at Silicon Graphics, Inc., need to be thanked for their efforts: Momi Akeley, Allen Akin, Chris Frazier, Bill Glazier, Paul Ho, Simon Hui, Lesley Kalmin, Pierre Tardif, Jim Winget, and especially Wei Yen, in addition to the previously mentioned Kurt, Phil, Mark, Kipp, and Kevin. Many other Silicon Graphics employees, who are too numerous to mention, helped refine the definition and functionality of OpenGL.