OpenGL

Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

Silicon Graphics Inc., (SGI) started developing OpenGL in 1991 and released it in January 1992; applications use it extensively in the fields of computer-aided design (CAD), virtual reality, scientific visualization, information visualization, flight simulation, and video games. OpenGL is managed by the non-profit technology consortium Khronos Group.

Design

The OpenGL specification describes an abstract API for drawing 2D and 3D graphics. Although it is possible for the API to be implemented entirely in software, it is designed to be implemented mostly or entirely in hardware.

The API is defined as a set of functions which may be called by the client program, alongside a set of named integer constants (for example, the constant GL_TEXTURE_2D, which corresponds to the decimal number 3553). Although the function definitions are superficially similar to those of the programming language C, they are language-independent. As such, OpenGL has many language bindings, some of the most noteworthy being the JavaScript binding WebGL (API, based on OpenGL ES 2.0, for 3D rendering from within a web browser); the C bindings WGL, GLX and CGL; the C binding provided by iOS; and the Java and C bindings provided by Android.

OpenGL++

OpenGL++ was a graphics library written in C++ that supported object-oriented data structures on top of the OpenGL 3D graphics system. The project started as the result of a partnership between SGI, IBM and Intel (and later Digital Equipment Corporation as well) to provide a higher level API than the "bare metal" support of OpenGL, as well as being an implementation for Java3D. Work on OpenGL++ ended when SGI decided to partner with Microsoft instead, leading to the Fahrenheit project, which also died.

Background

The vast majority of applications using 3D systems describe the objects in their "world" in a data structure known as a scene graph. A scene graph is normally organized as some sort of a tree data structure, with the nodes representing objects, and the edges their relationship to other objects in the world. For instance, a table might be represented by a single "table" object with several edges connecting its parts together, the table top, legs, etc. Key to high performance in 3D applications is deciding what objects in the world are actually visible given the current camera position and direction. For instance, objects behind the camera do not have to be drawn. Quick traversal of the scene graph is essential to making this "culling" operation occur quickly.

Podcasts:

PLAYLIST TIME:

Latest News for: opengl

VeriSilicon Launches Ultra-Low Power OpenGL ES GPU with Hybrid 3D/2.5D Rendering for Wearables

Business Wire 16 Apr 2025
The GLLite driver is highly configurable, providing full OpenGL ES 2.0 compliance with an optional runtime OpenGL Shading Language (GLSL) shader compiler, or operating in OpenGL ES 1.1 fixed-function pipeline mode for minimal memory usage ... .
  • 1
×