FACTOID # 19: Cheap sloppy joes: Looking for reduced-price lunches for schoolchildren? Head for Oklahoma!
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "OpenGL" also viewed:
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > OpenGL
OpenGL
Developer: Silicon Graphics
Latest release: 2.1 / August 02, 2006
OS: Cross-platform
Genre: API
License: Various
Website: 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. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992[1] and is widely used in CAD, virtual reality, scientific visualization, information visualization, flight simulation. It is also used in video games, where it competes with Direct3D on Microsoft Windows platforms (see Direct3D vs. OpenGL). Image File history File links OpenGL_logo. ... “Software development” redirects here. ... Silicon Graphics, Inc. ... Code complete redirects here. ... August 2 is the 214th day of the year in the Gregorian Calendar (215th in leap years), with 151 days remaining. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... A cross-platform (or platform independent) programming language, software application or hardware device works on more than one system platform (e. ... Computer software can be organized into categories based on common function, type, or field of use. ... A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ... A website (alternatively, Web site or web site) is a collection of Web pages, images, videos or other digital assets that is hosted on one or several Web server(s), usually accessible via the Internet, cell phone or a LAN. A Web page is a document, typically written in HTML... A cross-platform (or platform independent) programming language, software application or hardware device works on more than one system platform (e. ... API and Api redirect here. ... 2D computer graphics is the computer-based generation of digital images—mostly from two-dimensional models (such as 2D geometric models, text, and digital images) and by techniques specific to them. ... This article is about process of creating 3D computer graphics. ... 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 (draw, store). ... Silicon Graphics, Inc. ... Year 1992 (MCMXCII) was a leap year starting on Wednesday (link will display full 1992 Gregorian calendar). ... CADD and CAD redirect here. ... This article is about the simulation technology. ... For flight simulator software from Microsoft, see Microsoft Flight Simulator. ... This article is about computer and video games. ... Direct3D is part of Microsofts DirectX API. Direct3D is only available for Microsofts various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. ... Windows redirects here. ... This article does not cite any references or sources. ...

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, Windows, Linux, many Unix platforms, and PlayStation 3. 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. However to avoid licensing costs associated with formally calling itself an OpenGL implementation, it claims merely to be a "very similar" API. This article relates to both the original Classic Mac OS as well as Mac OS X, Apples more recent operating system. ... Windows redirects here. ... This article is about operating systems that use the Linux kernel. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®, sometimes also written as or ® with small caps) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... The PlayStation 3 , trademarked PLAYSTATION®3,[3] commonly abbreviated PS3) is the third home video game console produced by Sony Computer Entertainment; successor to the PlayStation 2. ... Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions only to ensure that further recipients can also do these things. ... ... Mesa 3D is an open source graphics library that provides a generic OpenGL implementation for rendering 3-Dimensional graphics on multiple platforms. ...


The OpenGL specification was revised by OpenGL Architecture Review Board (ARB) founded in 1992. 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. The OpenGL Architecture Review Board (ARB) is an independent consortium that governs the OpenGL specification. ... Year 1992 (MCMXCII) was a leap year starting on Wednesday (link will display full 1992 Gregorian calendar). ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... Year 2003 (MMIII) was a common year starting on Wednesday of the Gregorian calendar. ...


On 21 September 2006, control of OpenGL passed to the Khronos Group.[2] This was done in order to improve the marketing of OpenGL, and to remove barriers between the development of OpenGL and OpenGL ES.[3] The subgroup of Khronos that manages OpenGL was called the OpenGL ARB Working Group,[4] 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. is the 264th day of the year (265th in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... The Khronos Group is an industry consortium founded in 2002 and dedicated to creating APIs to enable the authoring and playback of rich media on a wide variety of platforms and devices. ... OpenGL ES (OpenGL for Embedded Systems) is a subset of the OpenGL 3D graphics API designed for embedded devices such as mobile phones, PDAs, and video game consoles. ...


Mark Segal and Kurt Akeley authored the original OpenGL specification. 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. Kurt Akeley is a computer graphics engineer. ...


Design

OpenGL serves two main purposes:

  • To hide the complexities of interfacing with different 3D accelerators, by presenting the programmer with a single, uniform API.
  • To hide the differing capabilities of hardware platforms, by requiring that all implementations support the full OpenGL feature set (using software emulation if necessary).

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. 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. In 3D computer graphics, the terms graphics pipeline or rendering pipeline most commonly refer to the current state of the art method of rasterization-based rendering as supported by commodity graphics hardware. ... 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. 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. A scene-graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. ... Refers to a programming style for 3D graphics where a persistent representation of graphical objects, their spatial relationships, their appearance and the position of the viewer, is held in memory and managed by a library layer. ...


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:

  • Rasterised points, lines and polygons as basic primitives
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:[5] Image File history File links Download high-resolution version (1074x574, 26 KB) File links The following pages on the English Wikipedia link to this file (pages on other projects are not listed): OpenGL ... Image File history File links Download high-resolution version (1074x574, 26 KB) File links The following pages on the English Wikipedia link to this file (pages on other projects are not listed): OpenGL ... Transform and Lighting is a computing term used in computer graphics, generally used in the context of hardware acceleration (Hardware T&L). Transform refers to the task of converting coordinates in space, which in this case involves moving 3D objects in a virtual world and converting 3D coordinates to a... Z-buffer data In computer graphics, z-buffering is the management of image depth coordinates in three-dimensional (3-D) graphics, usually done in hardware, sometimes in software. ... Spherical texture mapping Texture mapping is a method, pioneered by Edwin Catmull, of adding detail, surface texture, or colour to a computer-generated graphic or 3D model. ... Alpha blending is a convex combination of two colors allowing for transparency effects in computer graphics. ...

  1. Evaluation, if necessary, of the polynomial functions which define certain inputs, like NURBS surfaces, approximating curves and the surface geometry.
  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. 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.

Many modern 3D accelerators provide functionality far above this baseline, but these new features are generally enhancements of this basic pipeline rather than radical reinventions of it. A NURBS curve being created in NX Shape Studio. ... Rasterization or rasterisation is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image (pixels or dots) for output on a video display or printer. ... The framebuffer is a part of RAM in a computer allocated to hold the graphics information for one frame or picture. ...


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. 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.

A frustum is the portion of a solid â€“ normally a cone or pyramid â€“ which lies between two parallel planes cutting the solid. ...

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:

  • The Red Book – OpenGL Programming Guide, 5th edition. ISBN 0-321-33573-2
    A readable tutorial and reference book – this is a 'must have' book for OpenGL programmers. The first edition is available online here and here.
  • The Blue Book – OpenGL Reference manual, 4th edition. ISBN 0-321-17383-X
    Essentially a hard-copy printout of the man pages for OpenGL.
    Includes a poster-sized fold-out diagram showing the structure of an idealised OpenGL implementation. It is available here .
  • The Green Book – OpenGL Programming for the X Window System. ISBN 0-201-48359-9
    A book about X11 interfacing and GLUT.
  • The Alpha Book (which actually has a white cover) – OpenGL Programming for Windows 95 and Windows NT. ISBN 0-201-40709-4
    A book about interfacing OpenGL with Microsoft Windows.

Then, for OpenGL 2.0 and beyond: The man page on man Almost all substantial UNIX and Unix-like operating systems have extensive documentation known as man pages (short for manual pages). The Unix command used to display them is man. ... The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. ...

  • The Orange Book – The OpenGL Shading Language. ISBN 0-321-33489-2
    A readable tutorial and reference book for GLSL.

GLSL - OpenGL Shading Language also known as GLslang is a high level shading language based on the C programming language. ...

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. The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ extension loading library. ... The OpenGL Easy Extension library (GLee) automatically links OpenGL extensions and core functions at initialisation time. ...


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. Simple graphical user interface functionality can be found in libraries like GLUI or FLTK. 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). 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 operating system. ... Simple DirectMedia Layer (SDL) is a cross-platform multimedia free software library written in C that creates an abstraction over various platforms graphics, sound, and input APIs, allowing a developer to write a computer game or other multimedia application once and run it on many operating systems including GNU/Linux... OpenGL User Interface Library (GLUI) is a C++ user interface library based on the OpenGL Utility Toolkit (GLUT) which provides controls such as buttons, checkboxes, radio buttons, and spinners to OpenGL applications. ... The Fast, Light Toolkit (generally pronounced fulltick) is a cross-platform GUI library, developed by Bill Spitzak and others. ... The initialism or TLA AUX or Aux may refer to: A/UX, a Unix-like operating system produced by Apple An abbreviation of the word Auxiliary This page expands a three-character combination which might be any or all of: an abbreviation, an acronym, an initialism, a word in English... The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ extension loading library. ... The OpenGL Easy Extension library (GLee) automatically links OpenGL extensions and core functions at initialisation time. ...


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. 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. Refers to a programming style for 3D graphics where a persistent representation of graphical objects, their spatial relationships, their appearance and the position of the viewer, is held in memory and managed by a library layer. ... PLIB is a suite of Open Sourced portable computer game libraries, originally written by Steve Baker in 1997 and licensed under the LGPL. PLIB includes sound effects, music, a complete 3D engine, font rendering, a simple windowing library, a game scripting language, a GUI, networking, 3D math library and a... OpenSG is a scenegraph system for virtual reality applications based on OpenGL. It runs on IRIX, Microsoft Windows and Linux. ... The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modelling. ... OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual simulation applications. ... Proprietary software is software with restrictions on copying and modifying as enforced by the proprietor. ... Realtime redirects here. ...


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. As of June 22, 2007 it implements the 2.1 standard, and provides some of its own extensions for some platforms. Mesa 3D is an open source graphics library that provides a generic OpenGL implementation for rendering 3-Dimensional graphics on multiple platforms. ... This article is about operating systems that use the Linux kernel. ... is the 173rd day of the year (174th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ...


Bindings

In order to emphasize its multi-language and multi-platform characteristics, various bindings and ports have been developed for OpenGL in many languages. Some languages and their bindings are: In computer science, binding refers to the creation of a simple reference to something which is larger and more complicated and used frequently. ... In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed (e. ...

For more information on OpenGL Language bindings, see opengl.org's Wiki. Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language. ... The title given to this article is incorrect due to technical limitations. ... This article needs to be cleaned up to conform to a higher standard of quality. ... Microsoft . ... For other programming languages named D, see D (disambiguation)#Computing. ... Delphi has been released in many versions, including older versions which have been released in magazines for non-profit application use For the language Borland Delphi is programmed in, see Object Pascal. ... Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ... FreeBASIC is a free/open source (GPL), 32-bit BASIC compiler for Microsoft Windows, protected-mode DOS (DOS extender), Linux, and XBox. ... Haskell is a standardized purely functional programming language with non-strict semantics, named after the logician Haskell Curry. ... The Glasgow Haskell Compiler (or GHC) is an open source Native code Compiler for the functional programming language Haskell which was developed at the University of Glasgow. ... Java language redirects here. ... Java Binding for the OpenGL API is a JSR API specification for the Java SE platform which allows to use OpenGL [1] on the Java Platform. ... Java OpenGL (JOGL) is a wrapper library that allows OpenGL to be used in the Java programming language. ... The Lightweight Java Game Library (LWJGL) is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. ... “LISP” redirects here. ... Scheme is a multi-paradigm programming language. ... Mercury is a functional/logical programming language based on Prolog, but designed to be more useful for real-world programming problems. ... Wikibooks has a book on the topic of Perl Programming Perl is a dynamic programming language created by Larry Wall and first released in 1987. ... Perl OpenGL (POGL) is a portable, compiled wrapper library that allows OpenGL to be used in the Perl programming language. ... Pike is an interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C. Unlike many other dynamic languages, Pike is both statically and dynamically typed, and requires explicit type definitions. ... For other uses, see PHP (disambiguation). ... The PureBasic form designer PureBasic is an event-driven BASIC programming language for Windows, Linux, Mac OS X, and AmigaOS, developed by Fantaisie Software. ... Python is a high-level programming language first released by Guido van Rossum in 1991. ... Ruby is a reflective, dynamic, object-oriented programming language. ... For other uses, see Small talk. ... Real time, interactive, 3D map of this very same world. ... This article is about the Visual Basic language shipping with Microsoft Visual Studio 6. ... 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. The core API has no concept of windowing systems, audio, printing to the screen, keyboard/mouse or other input devices. 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. 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: This article does not cite any references or sources. ... A windowing system is a graphical user interface (GUI) which uses the window as one of its primary metaphors. ... An input device is a hardware mechanism that transforms information in the external world for consumption by a computer. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ...

Additionally the GLUT and SDL libraries provide functionality for basic windowing using OpenGL, in a portable manner. GLX (initialism for OpenGL Extension to the X Window System) provides the glue connecting OpenGL and the X Window System: it enables programs wishing to use OpenGL to do so within a window provided by the X Window System. ... “X11” redirects here. ... In a centralized database system, the only available resource that needs to be shielded from the user is the data, (that is, the storage system). ... WGL or Wiggle is the windowing system interface to the Microsoft Windows implementation of the OpenGL specification. ... Windows redirects here. ... Core OpenGL, or CGL, is Apple Computers Macintosh Quartz windowing system interface to the Mac OS X implementation of the OpenGL specification. ... Mac OS X (pronounced ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ... Carbon is the codename of Apple Computers API for the Macintosh operating system, which permits a good degree of forward and backward compatibility between source code written to run on the classic Mac OS, and the newer Mac OS X. The APIs are published and accessed in the form... A Cocoa application being developed using Xcode. ... The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. ... Simple DirectMedia Layer (SDL) is a cross-platform multimedia free software library written in C that creates an abstraction over various platforms graphics, sound, and input APIs, allowing a developer to write a computer game or other multimedia application once and run it on many operating systems including GNU/Linux...


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. The 1980s refers to the years from 1980 to 1989. ...


By the early 1990s, Silicon Graphics (SGI) was a leader in 3D graphics for workstations. Their IRIS GL API[6] was considered the state of the art and became the de facto industry standard, overshadowing the open standards-based PHIGS. This was because IRIS GL was considered easier to use, and because it supported immediate mode rendering. By contrast, PHIGS was considered difficult to use and outdated in terms of functionality. For the band, see 1990s (band). ... Silicon Graphics, Inc. ... 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). ... PHIGS is an API standard for rendering 3D computer graphics, at one time considered to be the 3D graphics standard for the 1990s. ... Immediate mode refers to a programming style for 3D graphics where the representations of graphical objects, their spatial relationships, their appearance and the position of the viewer, are transmitted one at a time to a library layer for rendering. ... PHIGS is an API standard for rendering 3D computer graphics, at one time considered to be the 3D graphics standard for the 1990s. ...


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. 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. Sun Microsystems, Inc. ... The Hewlett-Packard Company (NYSE: HPQ), commonly known as HP, is a very large, global company headquartered in Palo Alto, California, United States. ... For other uses, see IBM (disambiguation) and Big Blue. ... PHIGS is an API standard for rendering 3D computer graphics, at one time considered to be the 3D graphics standard for the 1990s. ...


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. “X11” redirects here. ... For other uses, see News (disambiguation). ...


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 a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. ... OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual simulation applications. ...


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. 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. A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device. ...


In 1992,[7] 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. Year 1992 (MCMXCII) was a leap year starting on Wednesday (link will display full 1992 Gregorian calendar). ...


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). The specification was circulated among a few interested parties – but never turned into a product.[8] Year 1994 (MCMXCIV) The year 1994 was designated as the International Year of the Family and the International Year of the Sport and the Olympic Ideal by the United Nations. ... 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 for the purpose of enabling hard real-time visual simulation applications. ...


Microsoft released Direct3D in 1995, which would become the main competitor of OpenGL. On 17 December 1997[9], 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). In 1998 Hewlett-Packard joined the project.[10] 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.[11] Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... Direct3D is part of Microsofts DirectX API. Direct3D is only available for Microsofts various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. ... Year 1995 (MCMXCV) was a common year starting on Sunday (link will display full 1995 Gregorian calendar). ... December 17 is the 351st day of the year (352nd in leap years) in the Gregorian calendar. ... For the band, see 1997 (band). ... Fahrenheit was an effort to create a unified high-level API for 3D computer graphics. ... Year 1998 (MCMXCVIII) was a common year starting on Thursday (link will display full 1998 Gregorian calendar). ... This article is about the year. ...


OpenGL 2.0

OpenGL 2.0 was conceived by 3Dlabs to address concerns that OpenGL was stagnating and lacked a strong direction. 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). 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. 3Dlabs is a graphics card vendor that develops high-end graphics chip technology and markets its Wildcat computer graphics solutions to design professionals in the CAD and content creation industries. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... GLSL - OpenGL Shading Language also known as GLslang is a high level shading language based on the C programming language. ... In 3D computer graphics, a shader is a program used to determine the final surface properties of an object or image. ...


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.[12] OpenGL 2.1 incorporates the following functionality: is the 214th day of the year (215th in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...

  • OpenGL Shading Language revision 1.20 (GLSL)
  • Commands to specify and query non-square matrix uniforms for use with the OpenGL Shading Language
  • Pixel buffer objects for efficient image transfers to and from buffer objects for commands such as glTexImage2D and glReadPixels.
    This functionality corresponds to the ARB_pixel_buffer_object extension.
  • sRGB texture formats.
    This functionality corresponds to the EXT_texture_sRGB extension.

GLSL - OpenGL Shading Language also known as GLslang is a high level shading language based on the C programming language. ... The title given to this article is incorrect due to technical limitations. ...

OpenGL 3.0

The newest revision of the OpenGL API will be OpenGL 3.0, formerly known as the codename Longs Peak. 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.[13] As a result the spec will likely not be available until the very end of 2007 or even the beginning of 2008. Image File history File links Gnome_globe_current_event. ... Image File history File links Nuvola_apps_kpager. ... Longs Peak (or Longs Peak, see below) is one of the 54 fourteeners in the Rocky Mountains of Colorado. ... For other uses, see September (disambiguation). ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 303rd day of the year (304th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... 2008 (MMVIII) will be a leap year starting on Tuesday of the Anno Domini (common) era, in accordance with the Gregorian calendar. ...


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.[14]


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.[15] Atomic object creation is achieved by creating a template object of a particular type.[16] 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.[17] 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. Asynchronous communication can be non-electronic or electronic. ...


For functions that are used to modify the flexible portion of 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. Image File history File links Gnome_globe_current_event. ... Image File history File links Nuvola_apps_kpager. ...


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 were: Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...

For a complete and updated list of the project's members see the promoters, contributors and academics member list of the Khronos Group. AMD redirects here. ... Apple Inc. ... Creative Technology Limited (SGX: C76, NASDAQ: CREAF) is a listed manufacturer of computer multimedia products based in Singapore where the firm was initially founded by Sim Wong Hoo (born 1957) on July 1, 1981. ... Intel redirects here. ... id Software (IPA: officially, though originally ) is an American computer game developer based in Mesquite, Texas, a suburb of Dallas. ... NVIDIA Corporation (NASDAQ: NVDA) (pronounced IPA: ) is a U.S. corporation specializing in the manufacture of graphics processor technologies for workstations, desktop computers, and handhelds. ... Sony Computer Entertainment, Incorporated ) (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 subsidiary of Sony Corporation that was established on November 16, 1993 in Tokyo, Japan. ... Sun Microsystems, Inc. ... Texas Instruments (NYSE: TXN), better known in the electronics industry (and popularly) as TI, is an American company based in Dallas, Texas, USA, renowned for developing and commercializing semiconductor and computer technology. ...


Sample renderings

OpenGL Games

Some notable games that include an OpenGL renderer include:

For the actual U.S. Army, see United States Army. ... Baldurs Gate is a popular series of computer role-playing games that take place on Faerûn, the main continent from Dungeons & Dragonss Forgotten Realms campaign setting. ... CoD redirects here. ... City of Heroes (CoH) is a massively multiplayer online role-playing computer game based on the superhero comic book genre, developed by Cryptic Studios and published by NCsoft. ... City of Villains is a massively multiplayer online role-playing computer game based on the superhero comic book genre, developed by Cryptic Studios and published by NCSoft. ... Counter-Strike (CS) is a popular team-based mod of Valves first-person shooter (FPS) Half-Life. ... Darwinia is the second game made by Introversion Software, the creators of Uplink. ... Doom 3 is a science fiction, horror, first-person shooter computer game. ... Dwarf Fortress is a computer game for Microsoft Windows that combines certain aspects of roguelike games and strategy games. ... This article is about the computer game. ... Frets on Fire is a Finnish music video game created by Sami Kyöstilä in which players use the keyboard to play along with scrolling on-screen musical notes to complete a song, and is a clone of the Guitar Hero video game series. ... Half-Life For a quantity subject to exponential decay, the half-life is the time required for the quantity to fall to half of its initial value. ... Half-Life 2 (commonly abbreviated to HL2) is a science fiction first-person shooter computer game that is the sequel to Half-Life. ... Homeworld 2 is a real-time strategy (RTS) computer game, the sequel to Relic Entertainments Homeworld from 1999. ... This article is about the 2002 computer role-playing game. ... Prey is a first-person shooter video game developed by Human Head Studios and produced by 3D Realms, using a heavily modified version of the Doom 3 engine. ... Logo for Quake 4. ... Rage is a first-person shooter video game in development by id software, it was announced at Quakecon on August 3, 2007. ... Serious Sam is the title of a series of first-person shooters created by the Croatian company Croteam. ... Serious Sam II (or Serious Sam 2) is a science fiction first-person shooter video game released for the PC and Xbox and the sequel to the 2002 computer game Serious Sam. ... Starsiege: Tribes (usually called Tribes or Tribes 1) is a sci-fi first-person shooter (FPS) computer game, the first of the Tribes video game series. ... Ultima is a series of fantasy computer role-playing games from Origin Systems, Inc. ... The Unreal series is a computer game franchise that began with the original Unreal, a single-player first-person shooter computer game which was published on May 30, 1998 by Epic Megagames, now known as Epic Games. ... Warcraft III: Reign of Chaos, released by Blizzard Entertainment in 2002, is a real-time strategy computer game and the second sequel to Warcraft. ... Wolfenstein: Enemy Territory (ET) is a freeware first-person shooter (FPS) computer game, and a standalone sequel to Return to Castle Wolfenstein, created by Splash Damage. ... World of Warcraft (commonly abbreviated as WoW) is a massive multiplayer online role-playing game (MMORPG) developed by Blizzard Entertainment and is the fourth game in the Warcraft series, excluding expansion packs and the cancelled Warcraft Adventures: Lord of the Clans. ...

See also

Wikibooks
Wikibooks has a book on the topic of
  • ARB (GPU assembly language) - OpenGL's low-level shading language
  • GLSL – OpenGL's high-level shading language
  • Cg – Nvidia's shading language that works with OpenGL
  • OpenGL ES – OpenGL for embedded systems
  • OpenAL – The Open Audio Library – designed to work well with OpenGL.
  • OpenSL ES – Another audio library.
  • Graphics pipeline

Image File history File links Wikibooks-logo-en. ... Wikibooks logo Wikibooks, previously called Wikimedia Free Textbook Project and Wikimedia-Textbooks, is a wiki for the creation of books. ... ARB - OpenGL Assembly Language is a low-level shading language. ... GLSL - OpenGL Shading Language also known as GLslang is a high level shading language based on the C programming language. ... Cg or C for Graphics is a high-level shading language created by NVIDIA for programming vertex and pixel shaders. ... OpenGL ES (OpenGL for Embedded Systems) is a subset of the OpenGL 3D graphics API designed for embedded devices such as mobile phones, PDAs, and video game consoles. ... OpenAL (Open Audio Library) is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. ... OpenSL ES is a royalty-free, cross-platform, hardware-accelerated audio API for 2D and 3D audio. ... In 3D computer graphics, the terms graphics pipeline or rendering pipeline most commonly refer to the current state of the art method of rasterization-based rendering as supported by commodity graphics hardware. ...

OpenGL support libraries

  • GLUT – The OpenGL utility toolkit.
  • SDL – The Simple DirectMedia Layer.
  • GLU – Some additional functions for OpenGL programs.
  • GLEW – The OpenGL Extension Wrangler Library.
  • GLUI - a GUI toolkit made with GLUT

The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. ... Simple DirectMedia Layer (SDL) is a cross-platform multimedia free software library written in C that creates an abstraction over various platforms graphics, sound, and input APIs, allowing a developer to write a computer game or other multimedia application once and run it on many operating systems including GNU/Linux... The OpenGL Utility Library (GLU) is a computer graphics library. ... The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ library that helps in querying and loading OpenGL extensions. ... OpenGL User Interface Library (GLUI) is a C++ user interface library based on the OpenGL Utility Toolkit (GLUT) which provides controls such as buttons, checkboxes, radio buttons, and spinners to OpenGL applications. ... GUI redirects here. ...

Other graphics APIs

Mesa 3D is an open source graphics library that provides a generic OpenGL implementation for rendering 3-Dimensional graphics on multiple platforms. ... Direct3D is part of Microsofts DirectX API. Direct3D is only available for Microsofts various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. ... This article does not cite any references or sources. ... Theres no denying that thin client has become a buzzword in the computing industry of late. ...

References

  1. ^ SGI - OpenGL Overview.
  2. ^ OpenGL Pipeline Newsletter Vol.2, Transitions.
  3. ^ Analysis: Khronos and OpenGL ARB merge.
  4. ^ OpenGL Architecture Review Board Working Group.
  5. ^ The OpenGL Graphics System Specification. Version 2.1.
  6. ^ IRIS GL, SGI's property.
  7. ^ Creation of the OpenGL ARB.
  8. ^ End of OpenGL++.
  9. ^ Announcement of Fahrenheit.
  10. ^ Members of Fahrenheit. 1998..
  11. ^ End of Fahrenheit.
  12. ^ OpenGL 2.1 Features.
  13. ^ OpenGL ARB announces an update on OpenGL 3.0 (October 30, 2007). Retrieved on 2007-10-31.
  14. ^ OpenGL SIGGRAPH 2006 Birds of a Feather Presentation (PowerPoint documents).
  15. ^ OpenGL Pipeline Newsletter Vol.2, The New Object Model.
  16. ^ The OpenGL Pipeline Newsletter - Volume 003, Using the Longs Peak Object Model.
  17. ^ The OpenGL Pipeline Newsletter - Volume 003, Climbing OpenGL Longs Peak.

is the 303rd day of the year (304th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 304th day of the year (305th in leap years) in the Gregorian calendar. ...

Further reading

  • Richard S. Wright Jr. and Benjamin Lipchak: OpenGL SuperBible, Third Edition, Sams Publishing, 2005, ISBN 0-672-32601-9
  • Astle, Dave and Hawkins, Kevin: Beginning OpenGL Game Programming, Course Technology PTR, ISBN 1-59200-369-9
  • Fosner, Ron: OpenGL Programming for Windows 95 and Windows NT, Addison Wesley, ISBN 0-201-40709-4
  • Kilgard, Mark: OpenGL for the X Window System, Addison-Wesley, ISBN 0-201-48359-9
  • Lengyel, Eric: The OpenGL Extensions Guide, Charles River Media, ISBN 1-58450-294-0
  • OpenGL Architecture Review Board, et al: OpenGL Reference Manual: The Official Reference Document to OpenGL, Version 1.4, Addison-Wesley, ISBN 0-321-17383-X
  • OpenGL Architecture Review Board, et al: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2, Fifth Edition, Addison-Wesley, ISBN 0-321-33573-2
  • Rost, Randi J.: OpenGL Shading Language, Addison-Wesley, ISBN 0-321-19789-5

Mark J. Kilgard is a graphics software engineer working at NVIDIA. Mark has written two books OpenGL for the X Window System (1996) and The Cg Tutorial (2003), co-authored with Randima Fernando. ... An editor has expressed a concern that the subject of the article does not satisfy one of the following guidelines for inclusion on Wikipedia: If you are familiar with the subject matter, please expand the article to establish its notability, citing reliable sources, so as to avoid it being considered... The OpenGL Architecture Review Board (ARB) is an independent consortium that governs the OpenGL specification. ... The OpenGL Architecture Review Board (ARB) is an independent consortium that governs the OpenGL specification. ... Randi J. Rost is Director of Developer Relations at 3Dlabs, Inc. ...

External links


  Results from FactBites:
 
OpenGL ES (1439 words)
OpenGL® ES is a low-level, lightweight API for advanced embedded graphics using well-defined subset profiles of OpenGL.
OpenGL ES allows new hardware innovations to be accessible through the API via the OpenGL extension mechanism and for the API to be easily updated.
OpenGL ES-specific extensions are either precursors of functionality destined for inclusion in future core profile revisions, or formalization of important but non-mainstream functionality.
OpenGL Overview (1182 words)
All elements of the OpenGL state—even the contents of the texture memory and the frame buffer—can be obtained by an OpenGL application.
The OpenGL Extension Registry is maintained by SGI and contains specifications for all known extensions, written as modifications to the appropriate specification documents.
OpenGL is the pervasive standard for 3D consumer and professional applications across all major OS platforms.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m