Citizendia
Your Ad Here

OpenGL
OpenGL logo
Developed by Silicon Graphics
Latest release 2. A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Silicon Graphics Inc (commonly initialised to SGI, historically sometimes referred to as Silicon Graphics Computer Systems or SGCS) is a company A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product 1 / August 02, 2006
OS Cross-platform
Genre API
License Various
Website http://www.opengl.org

OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. Events 338 BC - A Macedonian army led by Philip II defeated the combined forces of Athens and Thebes in the Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination In computing cross-platform (also known as multi-platform) is a term used to refer to Computer software or computing methods and concepts that are implemented Computer software can be organized into categories based on common function type or field of use A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages In computing cross-platform (also known as multi-platform) is a term used to refer to Computer software or computing methods and concepts that are implemented 2D computer graphics is the Computer -based generation of Digital images mdashmostly from two-dimensional models (such as 2D geometric models text and digital 3D computer graphics (in contrast to 2D computer graphics) are graphics that use a three-dimensional representation of geometric data that is stored in the computer The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. The term geometric primitive in Computer graphics and CAD systems is used in various senses with common meaning of atomic geometric objects the system can handle OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992[1] and is widely used in CAD, virtual reality, scientific visualization, information visualization, and flight simulation. Silicon Graphics Inc (commonly initialised to SGI, historically sometimes referred to as Silicon Graphics Computer Systems or SGCS) is a company Virtual reality ( VR) is a technology which allows a user to interact with a Computer-simulated environment be it a real or imagined one A flight simulator is a system that tries to copy or simulate, the experience of flying an aircraft It is also used in video games, where it competes with Direct3D on Microsoft Windows platforms (see Direct3D vs. OpenGL). A video game is a Game that involves interaction with a User interface to generate visual feedback on a video device. Direct3D is part of Microsoft 's DirectX API. Direct3D is only available for Microsoft's various Windows Operating systems ( Windows Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. This article compares two computer graphics APIs Direct3D is a proprietary API designed by Microsoft Corporation for hardware 3D

Contents

Specification

At its most basic level OpenGL is a specification, meaning it is simply a document that describes a set of functions and the precise behaviours that they must perform. From this specification, hardware vendors create implementations — libraries of functions created to match the functions stated in the OpenGL specification, making use of hardware acceleration where possible. Hardware vendors have to meet specific tests to be able to qualify their implementation as an OpenGL implementation.

Efficient vendor-supplied implementations of OpenGL (making use of graphics acceleration hardware to a greater or lesser extent) exist for Mac OS, Microsoft Windows, Linux, many Unix platforms, PlayStation 3, and even the TI-89 graphing calculator[2]. Mac OS is the trademarked name for a series of Graphical user interface -based Operating systems developed by Apple Inc Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Linux (commonly pronounced ˈlɪnəks Unix (officially trademarked as UNIX, sometimes also written as Unix with Small caps) is a computer The TI-89 and the TI-89 Titanium are Graphing calculators developed by Texas Instruments. Various software implementations exist, bringing OpenGL to a variety of platforms that do not have vendor support. Notably, the free software/open source library Mesa 3D is a fully software-based graphics API which is code-compatible with OpenGL. Free software or software libre is Software that can be used studied and modified without restriction and which can be copied and redistributed in modified or unmodified Open source software (OSS began as a marketing campaign for Free software. However to avoid licensing costs associated with formally calling itself an OpenGL implementation, it claims merely to be a "very similar" API.

The OpenGL specification was revised by OpenGL Architecture Review Board (ARB) founded in 1992. The OpenGL Architecture Review Board (ARB is an industry consortium that governed the OpenGL specification The ARB was formed by a set of companies interested in the creation of a consistent and widely available API. Microsoft, one of the founding members, left the project in 2003. Microsoft Corporation is an American multinational Computer technology Corporation, which rose to dominate the Home computer

On 21 September 2006, control of OpenGL passed to the Khronos Group. Events 1217 - The Estonian tribal leader Lembitu of Lehola was killed in a battle against Teutonic Knights. Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. The Khronos Group is a member-funded industry consortium focused on the creation of Open standard, royalty-free APIs to enable the authoring and accelerated playback [3] This was done in order to improve the marketing of OpenGL, and to remove barriers between the development of OpenGL and OpenGL ES. OpenGL ES ( OpenGL for E mbedded S ystems is a subset of the OpenGL 3D graphics API designed for Embedded devices [4] The subgroup of Khronos that manages OpenGL was called the OpenGL ARB Working Group,[5] for historical reasons. There is a list of members which make up the OpenGL ARB Working Group at section Members of Khronos Group. OpenGL is a general purpose API with lots of different possibilities because of the great number of companies with different interests which have made up the old ARB and the current group too.

Mark Segal and Kurt Akeley authored the original OpenGL specification. Kurt Akeley (born 8 June 1958 is a Computer graphics Engineer. Chris Frazier edited version 1. 1. Jon Leech edited versions 1. 2 through the present version 2. 1. Jon Leech has retired as secretary of the old ARB, and Barthold Lichtenbelt has taken his place as Khronos OpenGL ARB Steering Group Chair.

Design

OpenGL serves two main purposes:

OpenGL's basic operation is to accept primitives such as points, lines and polygons, and convert them into pixels. This is done by a graphics pipeline known as the OpenGL state machine. In 3D computer graphics, the terms graphics pipeline or rendering pipeline most commonly refer to the current state of the art method of Rasterization Most OpenGL commands either issue primitives to the graphics pipeline, or configure how the pipeline processes these primitives. Prior to the introduction of OpenGL 2. 0, each stage of the pipeline performed a fixed function and was configurable only within tight limits. OpenGL 2. 0 offers several stages that are fully programmable using GLSL. GLSL ( OpenGL Shading Language) also known as GLslang, is a high level Shading language based on the C programming language.

OpenGL is a low-level, procedural API, requiring the programmer to dictate the exact steps required to render a scene. This contrasts with descriptive (aka scene graph or retained mode) APIs, where a programmer only needs to describe a scene and can let the library manage the details of rendering it. A scene graph is a general Data structure commonly used by vector-based graphics editing applications and modern computer games In computing retained mode rendering is a style for Application programming interfaces of graphics libraries in which the libraries retain a complete model of the objects OpenGL's low-level design requires programmers to have a good knowledge of the graphics pipeline, but also gives a certain amount of freedom to implement novel rendering algorithms.

OpenGL has historically been influential on the development of 3D accelerators, promoting a base level of functionality that is now common in consumer-level hardware:

Simplified version of the Graphics Pipeline Process; excludes a number of features like blending, VBOs and logic ops
Simplified version of the Graphics Pipeline Process; excludes a number of features like blending, VBOs and logic ops

A brief description of the process in the graphics pipeline could be:[6]

  1. Evaluation, if necessary, of the polynomial functions which define certain inputs, like NURBS surfaces, approximating curves and the surface geometry. Transform clipping and lighting ( T&L or sometimes TCL) is a term used in Computer graphics. In Computer graphics, z-buffering is the management of image depth coordinates in three-dimensional (3-D graphics usually done in Hardware, sometimes in Texture mapping is a method for adding detail surface texture or colour to a computer-generated graphic or 3D model. In Computer graphics, alpha compositing is the process of combining an image with a background to create the appearance of partial transparency Non-uniform rational B-spline ( NURBS) is a mathematical model commonly used in Computer graphics for generating and representing curves and surfaces
  2. Vertex operations, transforming and lighting them depending on their material. Also clipping non visible parts of the scene in order to produce the viewing volume.
  3. Rasterisation or conversion of the previous information into pixels. Rasterization or Rasterisation is the task of taking an image described in a Vector graphics format (shapes and converting it into a Raster image ( The polygons are represented by the appropriate colour by means of interpolation algorithms.
  4. Per-fragment operations, like updating values depending on incoming and previously stored depth values, or colour combinations, among others.
  5. At last, fragments are inserted into the Frame buffer. A framebuffer is a video output device that drives a video display from a memory buffer containing a complete frame of data

Many modern 3D accelerators provide functionality far above this baseline, but these new features are generally enhancements of this basic pipeline rather than radical revisions of it.

Example

This example will draw a green square on the screen. OpenGL has several ways to accomplish this task, but this is the easiest to understand.

glClear( GL_COLOR_BUFFER_BIT );
This statement clears the color buffer, so that the screen will start blank.
glMatrixMode( GL_PROJECTION );      /* Subsequent matrix commands will affect the projection matrix */
glLoadIdentity();                   /* Initialise the projection matrix to identity */
glFrustum( -1, 1, -1, 1, 1, 1000 ); /* Apply a perspective-projection matrix */
These statements initialize the projection matrix, setting a 3d frustum matrix that represents the viewable area. Elements special cases and related concepts Each plane section is a base of the frustum This matrix transforms objects from camera-relative space to OpenGL's projection space.
glMatrixMode( GL_MODELVIEW );       /* Subsequent matrix commands will affect the modelview matrix */
glLoadIdentity();                   /* Initialise the modelview to identity */
glTranslatef( 0, 0, -3 );           /* Translate the modelview 3 units along the Z axis */
These statements initialize the modelview matrix. This matrix defines a transform from model-relative coordinates to camera space. The combination of the modelview matrix and the projection matrix transforms objects from model-relative space to projection screen space.
glBegin( GL_POLYGON );              /* Begin issuing a polygon */
glColor3f( 0, 1, 0 );               /* Set the current color to green */
glVertex3f( -1, -1, 0 );            /* Issue a vertex */
glVertex3f( -1, 1, 0 );             /* Issue a vertex */
glVertex3f( 1, 1, 0 );              /* Issue a vertex */
glVertex3f( 1, -1, 0 );             /* Issue a vertex */
glEnd();                            /* Finish issuing the polygon */
These commands draw a green square in the XY plane.

Documentation

OpenGL's popularity is partially due to the excellence of its official documentation. The OpenGL ARB released a series of manuals along with the specification which have been updated to track changes in the API. These are almost universally known by the colors of their covers:

Then, for OpenGL 2. 0 and beyond:

Extensions

The OpenGL standard allows individual vendors to provide additional functionality through extensions as new technology is created. Extensions may introduce new functions and new constants, and may relax or remove restrictions on existing OpenGL functions. 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 Architecture 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, introduced in version 1. 2. 1. Following the official extension promotion path, multitexturing is no longer an optionally implemented ARB extension, but has been a part of the OpenGL core API since version 1. 3.

Before using an extension a program must first determine its availability, and then obtain pointers to any new functions the extension defines. The mechanism for doing this is platform-specific and libraries such as GLEW and GLEE exist to simplify the process.

Specifications for nearly all extensions can be found at the official extension registry [1].

Associated utility libraries

Several libraries are built on top of or beside OpenGL to provide features not available in OpenGL itself. Libraries such as GLU can always be found with OpenGL implementations, and others such as GLUT and SDL have grown over time and provide rudimentary cross platform windowing and mouse functionality and if unavailable can easily be downloaded and added to a development environment. The OpenGL Utility Library ( GLU) is a computer Graphics library. The OpenGL Utility Toolkit ( GLUT) is a library of utilities for OpenGL programs which primarily perform system-level I/O with the host Simple DirectMedia Layer ( SDL) is a cross-platform Free and open source software multimedia library written in C that presents a simple interface Simple graphical user interface functionality can be found in libraries like GLUI or FLTK. OpenGL User Interface Library ( GLUI) is a C++ User interface library based on the OpenGL Utility Toolkit (GLUT which provides controls The " F ast L ight T ool' k' it" (generally pronounced "fulltick") is a Cross-platform GUI library developed Still other libraries like AUX are deprecated and have been superseded by functionality commonly available in more popular libraries, but code using them still exists, particularly in simple tutorials. Other libraries have been created to provide OpenGL application developers a simple means of managing OpenGL extensions and versioning. Examples of these libraries include GLEW (the OpenGL Extension Wrangler Library) and GLEE (the OpenGL Easy Extension Library).

In addition to the aforementioned simple libraries, other higher level object oriented scene graph retained mode libraries exist such as PLIB, OpenSG, OpenSceneGraph, and OpenGL Performer. In computing retained mode rendering is a style for Application programming interfaces of graphics libraries in which the libraries retain a complete model of the objects PLIB is a suite of Open Source portable computer game libraries originally written by Steve Baker in 1997 and licensed under the LGPL. OpenSG is a Scene graph system to create realtime graphics programs e OpenSceneGraph is an Open source high performance 3D graphics Toolkit, used by application developers in fields such as Visual simulation, Computer OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL These are available as cross platform free/open source or proprietary programming interfaces written on top of OpenGL and systems libraries to enable the creation of real-time visual simulation applications. Proprietary software is Computer software on which the producer has set restrictions on use private modification copying, or republishing. In Computer science, real-time computing (RTC is the study of hardware and software systems that are subject to a "real-time constraint"—i Other solutions support parallel OpenGL programs for Virtual Reality, scalability or graphics clusters usage, either transparently like Chromium or through a programming interface like Equalizer. Virtual reality ( VR) is a technology which allows a user to interact with a Computer-simulated environment be it a real or imagined one

Mesa 3D is a free/open source implementation of OpenGL. It supports pure software rendering as well as providing hardware acceleration for several 3D graphics cards under Linux. Linux (commonly pronounced ˈlɪnəks As of June 22, 2007 it implements the 2. Events 217 BC - Battle of Raphia: Ptolemy IV of Egypt defeats Antiochus III the Great of the Seleucid kingdom. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. 1 standard, and provides some of its own extensions for some platforms.

Bindings

In order to emphasize its multi-language and multi-platform characteristics, various bindings and ports have been developed for OpenGL in many languages. In Computer science, binding is the creation of a simple Reference to something that is larger and more complicated and used frequently See also Software portability In Computer science, porting is the process of adapting software so that an executable program can be created Some languages and their bindings are:

For more information on OpenGL Language bindings, see opengl.org's Wiki. Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability Matz's Ruby Interpreter or Ruby MRI is the reference implementation of the Ruby programming language. Smalltalk is an object-oriented, dynamically typed, reflective programming language. The Croquet Project is an International effort to promote the continued development of Croquet a free software platform and a Visual Basic ( VB) is the third-generation event-driven programming language and associated development environment (IDE from Visual Prolog, also formerly known as PDC Prolog and Turbo Prolog is a strongly typed object-oriented extension of Prolog.

Higher level functionality

OpenGL was designed to be graphic output-only: it provides only rendering functions. Rendering is the process of generating an image from a model, by means of computer programs The core API has no concept of windowing systems, audio, printing to the screen, keyboard/mouse or other input devices. A windowing system (or window system) is a component of a Graphical user interface (GUI and more specifically of a Desktop environment, which supports An input device is any Peripheral (piece of Computer hardware equipment used to provide data and control signals to an information processing system (such as a While this seems restrictive at first, it allows the code that does the rendering to be completely independent of the operating system it is running on, allowing cross-platform development. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination However some integration with the native windowing system is required to allow clean interaction with the host system. This is performed through the following add-on APIs:

Additionally, GLUT, SDL and the GLFW libraries provide functionality for basic windowing using OpenGL, in a portable manner. The OpenGL Utility Toolkit ( GLUT) is a library of utilities for OpenGL programs which primarily perform system-level I/O with the host Simple DirectMedia Layer ( SDL) is a cross-platform Free and open source software multimedia library written in C that presents a simple interface

History

In the 1980s, developing software that could function with a wide range of graphics hardware was a real challenge. Software developers wrote custom interfaces and drivers for each piece of hardware. This was expensive and resulted in much duplication of effort.

By the early 1990s, Silicon Graphics (SGI) was a leader in 3D graphics for workstations. Silicon Graphics Inc (commonly initialised to SGI, historically sometimes referred to as Silicon Graphics Computer Systems or SGCS) is a company Their IRIS GL API[7] was considered the state of the art and became the de facto industry standard, overshadowing the open standards-based PHIGS. IRIS GL ( I ntegrated R aster I maging S ystem G raphics L ibrary was a proprietary graphics API created by Silicon PHIGS ( Programmer's Hierarchical Interactive Graphics System) is an API standard for rendering 3D Computer graphics, at one time considered to be the 3D This was because IRIS GL was considered easier to use, and because it supported immediate mode rendering. Immediate mode rendering is a style for Application programming interfaces of graphics libraries in which client calls directly cause rendering of graphics objects to the display By contrast, PHIGS was considered difficult to use and outdated in terms of functionality. PHIGS ( Programmer's Hierarchical Interactive Graphics System) is an API standard for rendering 3D Computer graphics, at one time considered to be the 3D

SGI's competitors (including Sun Microsystems, Hewlett-Packard and IBM) were also able to bring to market 3D hardware, supported by extensions made to the PHIGS standard. Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services International Business Machines Corporation abbreviated IBM and nicknamed "Big Blue", is a multinational Computer Technology PHIGS ( Programmer's Hierarchical Interactive Graphics System) is an API standard for rendering 3D Computer graphics, at one time considered to be the 3D This in turn caused SGI market share to weaken as more 3D graphics hardware suppliers entered the market. In an effort to influence the market, SGI decided to turn the IrisGL API into an open standard.

SGI considered that the IrisGL API itself wasn't suitable for opening due to licensing and patent issues. Also, the IrisGL had API functions that were not relevant to 3D graphics. For example, it included a windowing, keyboard and mouse API, in part because it was developed before the X Window System and Sun's NeWS systems were developed. News is any new information or information on Current events which is presented by print, broadcast, Internet, or Word of mouth

In addition, SGI had a large number of software customers; by changing to the OpenGL API they planned to keep their customers locked onto SGI (and IBM) hardware for a few years while market support for OpenGL matured. Meanwhile, SGI would continue to try to maintain their customers tied to SGI hardware by developing the advanced and proprietary Iris Inventor and Iris Performer programming APIs. Open Inventor, originally IRIS Inventor, is a C++ Object oriented Retained mode 3D graphics API designed by SGI to provide OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL

As a result, SGI released the OpenGL standard.

The OpenGL standardised access to hardware, and pushed the development responsibility of hardware interface programs, sometimes called device drivers, to hardware manufacturers and delegated windowing functions to the underlying operating system. In computing a device driver or software driver is a Computer program allowing higher-level computer programs to interact with a Hardware device With so many different kinds of graphic hardware, getting them all to speak the same language in this way had a remarkable impact by giving software developers a higher level platform for 3D-software development.

In 1992,[8] SGI led the creation of the OpenGL architectural review board (OpenGL ARB), the group of companies that would maintain and expand the OpenGL specification for years to come. OpenGL evolved from (and is very similar in style to) SGI's earlier 3D interface, IrisGL. One of the restrictions of IrisGL was that it only provided access to features supported by the underlying hardware. If the graphics hardware did not support a feature, then the application could not use it. OpenGL overcame this problem by providing support in software for features unsupported by hardware, allowing applications to use advanced graphics on relatively low-powered systems.

In 1994 SGI played with the idea of releasing something called "OpenGL++" which included elements such as a scene-graph API (presumably based around their Performer technology). OpenGL++ was intended to be a powerful layer above the OpenGL 3D graphics system written in C++ that supported Object-oriented data structures OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL The specification was circulated among a few interested parties – but never turned into a product. [9]

Microsoft released Direct3D in 1995, which would become the main competitor of OpenGL. Microsoft Corporation is an American multinational Computer technology Corporation, which rose to dominate the Home computer Direct3D is part of Microsoft 's DirectX API. Direct3D is only available for Microsoft's various Windows Operating systems ( Windows On 17 December 1997[10], Microsoft and SGI initiated the Fahrenheit project, which was a joint effort with the goal of unifying the OpenGL and Direct3D interfaces (and adding a scene-graph API too). Events 546 - Gothic War (535–554: The Ostrogoths of King Totila Year 1997 ( MCMXCVII) was a Common year starting on Wednesday (link will display full 1997 Gregorian calendar Fahrenheit was an effort to create a unified high-level API for 3D computer graphics to unify Direct3D and OpenGL. In 1998 Hewlett-Packard joined the project. [11] It initially showed some promise of bringing order to the world of interactive 3D computer graphics APIs, but on account of financial constraints at SGI, strategic reasons at Microsoft, and general lack of industry support, it was abandoned in 1999. [12]

OpenGL 2. 0

OpenGL 2. 0 was conceived by 3Dlabs to address concerns that OpenGL was stagnating and lacked a strong direction. 3DLABS Semiconductor is a Fabless semiconductor company that develops the DMS range of fully programmable media-rich application processors 3Dlabs proposed a number of major additions to the standard. Most of these were, at the time, rejected by the ARB or otherwise never came to fruition in the form that 3Dlabs proposed. However, their proposal for a C-style shading language was eventually completed, resulting in the current formulation of GLSL (the OpenGL Shading Language, also slang). tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured GLSL ( OpenGL Shading Language) also known as GLslang, is a high level Shading language based on the C programming language. Like the assembly-like shading languages that it was replacing, it allowed the programmer to replace the fixed-function vertex and fragment pipe with shaders, though this time written in a C-like language. A shader in the field of Computer graphics is a set of software instructions which is used by the graphic resources primarily to perform rendering effects

The design of GLSL was notable for making relatively few concessions to the limitations of the hardware then available; this hearkened back to the earlier tradition of OpenGL setting an ambitious, forward-looking target for 3D accelerators rather than merely tracking the state of currently available hardware. The final OpenGL 2. 0 specification [10] includes support for GLSL.

OpenGL 2. 1

OpenGL 2. 1 was released on August 2, 2006 and is backward compatible with all prior OpenGL versions. Events 338 BC - A Macedonian army led by Philip II defeated the combined forces of Athens and Thebes in the Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. [13] OpenGL 2. 1 incorporates the following functionality:

OpenGL 3. 0

The newest revision of the OpenGL API will be OpenGL 3. 0, formerly known as the codename Longs Peak. Longs Peak (originally Long's Peak, see below) is one of the 58 " Fourteeners quot in the Rocky Mountains of Colorado. It was initially due to be finalized in September 2007, but the Khronos group announced October 30 that it had run into several issues that it wished to address before the release and is currently re-evaluating the specification. Events 637 - Antioch surrenders to the Muslim forces under Rashidun Caliphate after the Battle of Iron bridge. [14] As a result the spec has been delayed into 2008. There have been no further official announcements concerning the release date or progress as of May 2008, leading to discontent and speculation within the community,[15] however, Michael Gold, an Nvidia employee and long-time OpenGL contributor[16], has implied that the spec will be revealed during the OpenGL BoF at SIGGRAPH 2008[17]. International holidays May 1 - Labour Day ( Pakistan) May 1 - Labour Day ( Singapore) The multinational NVIDIA Corporation ( (ɪnˈvɪdiə specializes in the manufacture of graphics-processor technologies for Workstations In the world of Computing, BoF (Birds of a Feather can refer to An informal discussion group SIGGRAPH (short for S pecial I nterest G roup on GRAPH ics and Interactive Techniques is the name of the annual conference on Computer graphics

OpenGL 3. 0 represents the first major API revision in OpenGL's lifetime. It consists of a refactoring of the way that OpenGL works, from the object model to shaders. To support backwards compatibility, all of the old API will still be available. However, no new functionality will be exposed via the old API in later versions of OpenGL.

OpenGL 3. 0 fundamentally changes the API in virtually every way. Any fixed functionality that OpenGL 2. 1 also provided a shader interface for has been removed in favor of a shader-only approach. The API has been streamlined, designed to both simplify application development and ease the burden on implementations.

The biggest change from an API perspective is the reliance on objects. The GL 2. 1 object model was built upon the state-based design of OpenGL. That is, in order to modify an object or to use it, one needed to bind the object to the state system, then make modifications to the state or perform function calls that use the bound object. This made it difficult for OpenGL implementations to know when an object was being bound for use or for modification.

Also, because the legacy of the object model was the OpenGL state system, objects had to be mutable. That is, the basic structure of an object could change at any time, even if the rendering pipeline was asynchronously using that object. A texture object could be redefined from 2D to 3D. This required that implementations be able to orphan the internal objects themselves, which added a degree of complexity to internal object management.

The new 3. 0 object model does away with both of these issues. Objects, once created, are basically immutable. A 2D texture is a 2D texture object of a set resolution and format forever, though it can be destroyed or have its texture contents updated with new image data.

This requires changing a substantial portion of the OpenGL API. This change, centered around the new object model, represents a shift away from a state-based system and to an object-based system. [18]

Object creation becomes atomic; a single function call creates a fully formed object. Object sharing across rendering contexts is specified at the per-object level; this allows the implementation the ability to use thread-safe function calls for those objects. [19] Atomic object creation is achieved by creating a template object of a particular type. [20] Template objects are similar to structs in C, except they can be extended with additional fields without recompiling. Attributes are set in the template object, just as fields in a struct can be set. The template object is then passed to an appropriate object creation function for that particular template object type.

Object creation is also asynchronous. In Telecommunications, Asynchronous communication is transmission of data without the use of an external clock signal [21] The implementation is allowed to begin creation of the object in another thread. The handle to the object remains valid even if the object has not finished being created. Rendering can occur with objects that have not yet been created, since OpenGL rendering is already an asynchronous process.

For functions that are used to modify the flexible portion of an immutable object, for example the contents of an image, the functions take the object as a parameter. This is as opposed to the GL 2. 1 style where the object must be bound to the context if it is to be modified or queried. Objects are still bound to the context in order to be used for rendering.

Post OpenGL 3. 0

There are plans to add more functionality to OpenGL beyond GL 3. 0. It is also a most likely scenario that, since the OpenGL release of 3. 0 has been postponed for such a long time now, the mentioned additional features and updates of "Longs Peak reloaded" and "Mt Evans" will be integrated directly into the final 3. 0 release.

Longs Peak Reloaded

This revision, due to be released 2-3 months after 3. 0, will entail adding smaller features to 3. 0 that could not be added in the timeframe for 3. 0's release. They are mostly ease-of-use features that make the API more convenient to use, though a few features for performance purposes also exist.

Mt Evans

This revision, due to be released 3-5 months after 3. 0, brings OpenGL 3. 0 up-to-date with more modern hardware features. These include geometry shaders, integers in shaders, texture arrays, and instanced rendering.

Members of Khronos Group

In 2006, some of the OpenGL ARB Working Group members were:

For a complete and updated list of the project's members see the promoters, contributors and academics member list of the Khronos Group. Apple Inc, ( formerly Apple Computer Inc, is an American Multinational corporation with a focus on designing and manufacturing Consumer electronics Creative Technology Limited ( is a listed manufacturer of computer Multimedia products based in Singapore, where the firm was founded and now under the executive id Software (ɪd officially is an American computer game developer based in Mesquite, Texas, a suburb of Dallas. The multinational NVIDIA Corporation ( (ɪnˈvɪdiə specializes in the manufacture of graphics-processor technologies for Workstations ( SCEI) is a Japanese Video game company specializing in a variety of areas in the video game industry mostly in Video game consoles and is a full Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services Texas Instruments ( better known in the electronics industry (and popularly as TI, is an American company based in Dallas, Texas, USA

Sample renderings

OpenGL Games

Some notable games that include an OpenGL renderer:

See also

OpenGL support libraries

Other graphics APIs

References

  1. ^ SGI - OpenGL Overview. VirtualGL is an Open source program which redirects the 3D rendering commands from Unix and Linux OpenGL applications to 3D accelerator
  2. ^ ClosedGL.
  3. ^ OpenGL Pipeline Newsletter Vol.2, Transitions.
  4. ^ Analysis: Khronos and OpenGL ARB merge.
  5. ^ OpenGL Architecture Review Board Working Group.
  6. ^ The OpenGL Graphics System Specification. Version 2.1.
  7. ^ IRIS GL, SGI's property.
  8. ^ Creation of the OpenGL ARB.
  9. ^ End of OpenGL++.
  10. ^ Announcement of Fahrenheit.
  11. ^ Members of Fahrenheit. 1998..
  12. ^ End of Fahrenheit.
  13. ^ OpenGL 2.1 Features.
  14. ^ OpenGL ARB announces an update on OpenGL 3.0 (October 30, 2007). Events 637 - Antioch surrenders to the Muslim forces under Rashidun Caliphate after the Battle of Iron bridge. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Retrieved on 2007-10-31. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 445 BC – Ezra reads the Book of the Law to the Israelites in Jerusalem (see Nehemiah 91 NLTse
  15. ^ Discussion in the ARB's announcement thread, months later (May 08, 2008). Events 589 - Reccared summons the Third Council of Toledo 1450 - Jack Cade's Rebellion: Kentishmen 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Retrieved on 2008-05-08. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 589 - Reccared summons the Third Council of Toledo 1450 - Jack Cade's Rebellion: Kentishmen
  16. ^ Paul Hsieh's OpenGL versus Direct 3D page (1997-07-10). Year 1997 ( MCMXCVII) was a Common year starting on Wednesday (link will display full 1997 Gregorian calendar Events 48 BC - Battle of Dyrrhachium, Julius Caesar barely avoids a catastrophic defeat to Pompey in Macedonia. Retrieved on 2008-05-30. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 1416 - The Council of Constance, called by the Emperor Sigismund a supporter of Antipope John XXIII burns Jerome of Prague following
  17. ^ OpenGL 3 Updates (2008-05-23). 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 1430 - Siege of Compiègne: Joan of Arc is captured by the Burgundians while leading an army to relieve Compiègne Retrieved on 2008-05-30. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 1416 - The Council of Constance, called by the Emperor Sigismund a supporter of Antipope John XXIII burns Jerome of Prague following
  18. ^ OpenGL SIGGRAPH 2006 Birds of a Feather Presentation (PowerPoint documents).
  19. ^ OpenGL Pipeline Newsletter Vol.2, The New Object Model.
  20. ^ The OpenGL Pipeline Newsletter - Volume 003, Using the Longs Peak Object Model.
  21. ^ The OpenGL Pipeline Newsletter - Volume 003, Climbing OpenGL Longs Peak.

Further reading

External links

The OpenGL Architecture Review Board (ARB is an industry consortium that governed the OpenGL specification Randi J Rost (born February 24, 1960) is a Computer graphics professional and frequent contributor to graphics standards The Open Directory Project ( ODP) also known as dmoz (from directory
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic