Main Page | See live article | Alphabetical index


OpenGL (Open Graphics Library) is a specification defining a cross-language cross-platform API for writing applications that produce 3D computer graphics (and 2D computer graphics as well). The interface consists of about 250 different function calls which can be used to draw complex three dimensional scenes from simple primitives. It is very popular in the video games development industry where it competes with Direct3D (on Microsoft Windows). OpenGL is also used in CAD, virtual reality, and scientific visualization programs.

Efficient implementations of OpenGL (leveraging graphics acceleration hardware to a greater or lesser extent) exist for Windows, many UNIX platforms, and MacOS. These implementations are generally provided by display device manufacturers and rely heavily on the hardware provided by that manufacturer. The open source library Mesa is a fully software-based graphics API which is code-compatible with OpenGL. However, for licensing reasons it claims merely to be a "very similar" API.

The OpenGL specification is overseen by the OpenGL Architecture Review Board (ARB) which was formed in 1992. The ARB consists of a set of companies with a vested interest in creating a consistent and widely available API. According to the official OpenGL website, voting members of the ARB as of June 2002 include 3Dlabs, Apple Computer, ATI, Dell Computer, Evans & Sutherland, Hewlett-Packard, IBM, Intel, Matrox, NVIDIA, SGI and Sun Microsystems. (Microsoft, one of the founding members, left in March 2003.)

The OpenGL standard allows specific vendor to provide extended functionality through extensions as new technology is created. An extension is then distributed in two parts: as a header file which contains the extension's function prototypes, and as the vendor's device driver. Each vendor has an alphabetic abbreviation that is used in naming their new functions and constants. For example, NVIDIA's abbreviation ("NV") is used in defining their proprietary function "glCombinerParameterfvNV()" and their constant "GL_NORMAL_MAP_NV". It may happen that more than one vendor agrees to implement the same extended functionality. In that case, the abbreviation "EXT" is used. It may further happen that the Achitecture Review Board "blesses" the extension. It then becomes known as a "standard extension", and the abbreviation "ARB" is used. The first ARB extension was GL_ARB_multitexture.

OpenGL evolved from (and is very similar in style to) SGI's earlier 3D interface, IRIS GL. The Fahrenheit project was a joint effort between Microsoft and SGI with the goal of unifying the OpenGL and Direct3D interfaces. It initially showed some promise of bringing order to the world of interactive 3D computer graphics APIs, but due to financial constraints at SGI, it has since been abandoned.

Several libraries are built on top of OpenGL to provide features not available in OpenGL itself:

In particular, the OpenGL Performer library, developed by SGI and available for IRIX, Linux, and several versions of Microsoft Windows, builds on OpenGL to enable the creation of hard real-time visual simulation applications.

External Link