OpenGL®, the open graphics language, is an open source standard and abstract programming interface (API) for programming three-dimensional (3D) graphics in computer programs. For the API to work when compiled and run, the computer executing the program must have the correct OpenGL® drivers installed. There are many types of drivers, but they all serve the singular purpose of acting as an interface between the code that is written using the OpenGL® API and the hardware that is rendering the graphics. The OpenGL® drivers are not developed or released by the people who maintain the OpenGL® API; they are instead released by the manufacturers of the hardware inside of the computer. The only difference, in reality, between the different types of OpenGL® drivers is the code for the hardware with which it is interfacing.
The standard for OpenGL® eventually became a unified, simple platform and mostly language-independent implementation of basic 3D graphics functions that could be used as a very low-level way to interface with hardware. It progressed in this direction because of a growing amount of proprietary 3D APIs that each had different design philosophies and function signatures. The API was adopted by programmers and hardware manufacturers alike, because it was open source and did not require the purchase of a license for use the way some other operating system or language-specific APIs did.
The basic OpenGL® drivers are produced by the manufacturers of graphics cards, expansion cards and graphics accelerators. This means each driver is written according to exact and accurate specifications for the target hardware, and that the hardware can be manufactured with optimizations targeted toward the driver to increase performance. The widespread acceptance of the API and the relatively low overhead that comes with it has made it a valuable choice for high-performance graphics applications and, in turn, has driven hardware manufacturers to strive for low-level optimizations to complement that performance with their cards.
In response to the efforts of hardware manufacturers, the developers of OpenGL® provided a mechanism that would allow the drivers to implement customized operations that could be coded into the OpenGL® drivers. These special features of different hardware pieces could be included in the OpenGL® API. This would allow a manufacturer to have a graphics card that supports hardware-accelerated functions, such as fabric simulation algorithms, and allow the OpenGL® API to call and interface with that functionality. These extensions provided a mechanism through which the OpenGL® drivers and API could become a fluid, extensible mechanism for 3D graphics programming.
As of 2011, OpenGL® drivers are individual to each piece of hardware that supports the standard. There can be no single, unified driver, because each piece of hardware is distinctly different and sometimes uses proprietary information. This means that, while there are technically many types of OpenGL® drivers — one for each hardware card — they all perform the exact same function from a programming perspective.