Portal:OpenGL Concepts/Intro

From OpenGL Wiki
Jump to: navigation, search
Opengl Tiny.gif

OpenGL is the name for the specification that describes the behavior of a rasterization-based rendering system. It defines the API through which a client application can control this system. The OpenGL rendering system is carefully specified to make hardware implementations allowable.

Hardware vendors, the people who make GPUs, are responsible for writing implementations of the OpenGL rendering system. Their implementations, commonly called "drivers", translate OpenGL API commands into GPU commands. If a particular piece of hardware is unable to implement all of the OpenGL specification via hardware, the hardware vendor must still provide this functionality, typically via a software-based implementation of the features missing from hardware.

OpenGL is generally not something you directly install. It is not a library or separate downloadable package. You simply install drivers for your graphics hardware, and the OpenGL implementation is part of the installation.

OpenGL is typically exposed to software as an API written against C. However, there are bindings for many other languages, built on top of that API. For users of C or C++, there will be a need, on most platforms, to explicitly load functions of interest. There are many libraries that handle this process mostly automatically.

OpenGL functions have a well-defined naming convention (which is usually consistently followed). They also use a specific set of well-defined types, to aid in cross-platform portability.

The OpenGL specification is governed by the OpenGL ARB, which is a member of the Khronos Group. They develop new versions of the specification and decide how to expose various hardware features through OpenGL. Major hardware vendors, such as NVIDIA, AMD, and Intel, are members of the ARB.

OpenGL has had a number of different versions. The most recent version of OpenGL is 4.6. Recently (since 2008), the ARB has regularly released a new version of OpenGL yearly, with each update adding significant new features.