Home >> Computers >> Programming >> Languages >> Java >> Class Libraries >> Graphics >> 3D >> OpenGL




OpenGL (Open Graphics Library) occurs as specification defining the cross-language cross-platform API for writing applications that produce 3D computer graphics (and 2D computer graphics as well). A interface consists of complete 250 different work calls which may be utilized to draw complex 3-cubic scenes from either elementary primitives. These are super popular in the video games industry where it competes using Direct3D (on Microsoft Windows) (see Direct3D vs. OpenGL). OpenGL is widely utilized inside CAD, virtual reality, scientific visualization, facts visualisation & video game development.

Specification
At its virtually all basic level, OpenGL occurs as specification, meaning these are good just a document that describes the placed of functions & the accurate behaviours that it must perform. From either this specification, devices trafficker produce implementations — libraries of functions created to match a functions declared in the OpenGL specification. These implementations come designed to use a capabilities of their devices in which conceivable. While devices acceleration is non available, a implementations want to emulate a functionality across software program. Devices seller own to meet specific tests to exist as breathe to qualify their implementation as an OpenGL implementation. In that way, computer software program developers good require to read training utilise a functions in a OpenGL specificatiin, & may rely on devices seller to choose care of making the interface from either software to devices super effective.

Effective implementations of OpenGL (leveraging graphics acceleration devices to the greater or even lesser extent) survive for Windows, many Unix platforms and Linux, Playstation 3, and Mac OS. These implementations come usually provided by display device manufacturers & swear heavy on the devices provided by that manufacturer. A open source library Mesa is a fully software-depending graphics API which is code-compatible by having OpenGL. Still, for licensing reasons it claims only to become the "very similar" API.

A OpenGL specification is overseen per OpenGL Architecture Read Board (ARB), which was formed within 1992. the Arbitrageur consists of the placed of corporations by owning the vested interest within creating a uniform & widely available API. Based on data from a official OpenGL site, vote members of the Arbitrager when of November 2004 include professional graphics devices manufacturers SGI, 3Dlabs, Matrox and Evans & Sutherland (military applications), consumer graphics hardware manufacturers ATI Technologies and NVIDIA, processor specialist Intel, and computer manufacturers IBM, Apple Computer, Dell, Hewlett-Packard, and Sun Microsystems. Microsoft, one of the innovation members, left within March 2003. Aside from either these corporations, both season numerous more corporations come invited to exist as a share of the OpenGL ARB for 1-annual terms. By having then numerous corporations required sustaining such the diverse placed of interests, OpenGL has turn into the lot the general-all-purpose API sustaining a wide range of capabilities.

Extensions
A OpenGL standard allows person marketer to provide extra functionality across extensions when fresh technology is created. An extension is so distributed inside 2 area: as a header file which contains a extension's work paradigm, & when a trafficker's device driver. For each one seller has an alphabetic abbreviation that is utilized in name only their freshly functions & constants. For instance, NVIDIA's abbreviation (NV) is utilized inside defining their proprietary work glCombinerParameterfvNV() & their constant GL_NORMAL_MAP_NV. It could happen that additional than a single trafficker agrees to implement a equivalent extended functionality. Therein example, a abbreviation EXT is utilized. It might farther happen that a Architecture Read Board "blesses" a extension. It so becomes called the standard extension, & a abbreviation Arbitrageur is utilized. A foremost Arbitrager extension was GL_ARB_multitexture. As punishment the official extension promotion path, multitexturing is no protracted an optionally enforced Arbitrager extension, however has been a a share of the OpenGL core API since version Single.Foursome. Specifications for 100% extensions may be discovered at a official extension repository [http://oss.sgi.com/projects/ogl-sample/registry/].

Many libraries come rest on top of OpenGL to provide features non available within OpenGL itself:

GLU GLUT GLUI

Particularly, a OpenGL Performer library, developed by SGI and available for IRIX, Linux, and many versions of Microsoft Windows, builds on OpenGL to enable a creation of real-time visual simulation applications.

Bindings

Sequentially to enforce its multi-language & multi-platform characteristics, various bindings and ports have been developed for OpenGL in several languages. Virtually all notably, a Java 3D library can rely in OpenGL for its devices acceleration. Directly bindings come besides available rather a [http://lwjgl.org Lightweight Java Game Library] which has the straight binding of OpenGL for Java & more game related components. Super recently, Sun has freed beta versions of the JOGL technique, which will bring straight bindings to C OpenGL commands, unlike Java 3D which does not provide such on line level trend lines. A OpenGL official site [http://www.opengl.org/] lists various bindings for Java, Fortran 90, Perl, Pike, Python, Ada, and Visual Basic. Bindings come likewise available for C++ and C#, see [http://www.exocortex.org/3dengine/].

Higher level functionality

OpenGL was designed to exist as output-lone: it will bring single rendering functions. A core API has there is no conception of windowing systems, audio, printing, keyboard/mouse, or more input devices. When this seems restrictive at a start, it allows a code that does the giving to exist as entirely independent of the operating system it is running in, leaving cross-platform development. Even so a bit of integration using a native windowing models is involved to allow clean and jerk interaction using a carrier rules. This is performed through the resulting add-in APIs:

GLX - X11 (including network transparency) WGL - Microsoft Windows

In addition a GLUT and SDL libraries provide functionality for basic windowing using OpenGL, inside the personal manner. Mac OS X has three APIs for OpenGL trend lines: AGL for Carbon, NSOpenGL for Cocoa and CGL for direct access.

History
Thereinside day and age, the digital generation of alive scenes inside ternary dimensions has be a regular fixture in everyday life. Man of science use computer graphics to analyse simulations of each possibility. Engineers & designer project virtual system utilizing computer graphics. Picture use computer graphics to produce stunning favorite results or even entire alive films. & above a retiring pack years, video game apply brought computer graphics technology to the use of regular consumers, utilizing graphics to bring their players into worlds that can never survive.

Bringing digital graphics technology to such far flung apply has non been forgoing its challenges. Fifteen years ago, getting software package that can work using the wide range of graphics devices & everthing of their different interfaces was each programmer’s worst nightmare. A worst section was that to each one single team of coder developed their interfaces on an individual basis, there was a great deal of duplicated code, & it was hindering a growing industry of computer graphics.

Silicon Graphics Incorporated specialises in the creation of specialized graphics devices & software system. Existence a world leader within 3D graphics at the period, SGI considered this devices interface quandary to become a major condition when it was hindering the incubation of the 3D graphics market, then it sought to standardise & abstract access to devices.

the guide come in the form of a graphics API, called OpenGL. OpenGL standardised access to devices, & pushed a development responsibility of devices interface software, periodically known as device drivers, to hardware manufacturers. Using then numerous different sort of graphic devices, incurring a two everthing to speak the equivalent language therein way got a remarkable impact by allowing software system program developers to concentrate in software development – the project that it is better at.

Within 1992, SGI led a creation of a OpenGL architectural read board (OpenGL ARB), the class action of corporations that would project the OpenGL specification for years to are. OpenGL evolved from either (& is very similar a la mode to) SGI's sooner 3D interface, IRIS GL. One of a restrictions of IRIS GL was that it single provided access to features supported per underlying devices. In case a graphics devices did non trend lines a feature, so the application may not let it run. OpenGL overcame this conditiin by providing trend lines within package for features unsupported by devices, leaving applications to utilize advanced graphics on comparatively online-praya systems.

Once Direct3D was freed within 1995, Microsoft, SGI, and Hewlett-Packard initiated a Fahrenheit project, which was a joint effort by using a goal of unifying a OpenGL & Direct3D interfaces. It at first showed a bit of promise of bringing choose to the globe of interactional 3D computer graphics APIs, however due to fiscal constraints at SGI & general want of industry trend lines, it has since been abandoned.

Future in Microsoft Windows
In August 6 2005, Microsoft's intentions for OpenGL support inside Windows Vista were revealed on [http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=12;t=000001 in an Opengl.org news announcement]:

Microsoft's todays project for OpenGL in Windows Scene is to layer OpenGL all over Direct3D sequentially to utilize OpenGL by owning a composited desktop to obtain the Aeroglass case. In case an OpenGL ICD is dog - a desktop setter may cut - significantly degrading a user personal experience.

Around practice this means for OpenGL under Aeroglass:

OpenGL performance is significantly reduced - perhaps up to 50%

OpenGL in Windows is fixed at the vanilla version of OpenGL One.4

There is no extensions is imaginable to expose new devices innovations
It would exist as technically straightforward to provide an OpenGL ICD in a to a full Aeroglass case while forgoing compromising a stability or even the security of the operating models. Layering OpenGL on top Direct3D occurs as policy to the higher degree a technical indicator guide.

Following, a new of Microsoft Windows trend lines of OpenGL as a mainstream library for computer and video games looks precarious. Microsoft stand taken a guide does'nt to release the information necessary to allow third parties (like people at NVIDIA, ATI or a more big graphics card manufacturers) to acquire replacement drivers, allowing there is no way to keep away from the 50% speed drop. The 3Dlabs employee states in the same Opengl.org thread:

This page come from either a OpenGL BOF held at Siggraph 2005 within LA this go Wednesday evening. This was confirmed at a BOF by NVIDIA, ATI & united states (3Dlabs).

When soon as an [installable client driver] is loaded a composited desktop is turned off in Windows Prospect. For a composited desktop Aeroglass personal experience, smart shoppers might require to produce the application last across Microsoft's OpenGL implementatiin, which is layered on top of DirectX. Equally pointed retired earliest, this layering could keep around performance implications. Their implementation supports OpenGL version One.Tetrad exclusively, forgoing extension trend lines.

I personally imagine it imaginable to provide an ICD sustaining fully composited desktop trend lines when adhering to the stability & security requirements inside Windows Prospect. However i personally require Microsoft's facilitate inside doing and so.

So, every bit mentioned prior even even to, please let your systems call for in a ISV or IHV or OEM community underst& how else we sense all about this and spread the word.

For a few extra principles, we might browse these Microsoft WinHEC slides:

"Windows Graphics Overview [WinHEC 2005; 171 KB]" [http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWPR05007_WinHEC05.ppt http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWPR05007_WinHEC05.ppt]

"Advances in Display and Composition Architecture for Windows [WinHEC 2005; 422 KB]" [http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWPR05005_WinHEC05.ppt http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWPR05005_WinHEC05.ppt]

Regards, Barthold 3Dlabs

An installable client driver is the gum provided by the card manufacturer to attach your systems computers operating models by using your graphics card.

OpenGL 2.0
Compared to to DirectX, it has been said that one of the independent problems using OpenGL is that its Architecture Read Board has such the heavy total of corporations sustaining such a diverse placed of interests that deciding in every revision of the specification will require much of period. OpenGL Two.Zero was ideate by 3Dlabs to address concerns that OpenGL was stagnating & lacked the heavy counsel. 3Dlabs proposed a total of major additions to the standard, the virtually all important of which was GLSL (the OpenGL Shading Fiftyanguage). This would enable a computer programmer to replenish a OpenGL fixed-work vertex & fragment pipelines sustaining shaders written in the C-like language to produce a few of the virtually all stunning results like bump mapping, heat haze & a water supply waves & ripples. GLSL was notable for making comparatively couple concessions to a limitations of the devices so available; this harked back to the earliest tradition of OpenGL setting challenging, forward-modern targets for fresh 3D accelerators like than just tracking the state of presently available devices. A final OpenGL Two.Cypher specification [http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf] involved trend lines for GLSL, however omitted numerous of the more features originally proposed - these were deferred to first versions of OpenGL, although occasionally come at present available when extensions.

Sample Renderings
A giving phase is the previous step in the OPENGL giving engine. It produces a final display product for the scene to become displayed.

GL4Java
Maps the OpenGL API to Java, using the Java Native Interface (JNI) to talk to the operating system's native OpenGL library. Windows, Linux and Mac. [Open Source, LGPL]

JGL
A 3D Graphics Library for Java which is similar to OpenGL. [Open Source, LGPL]

AgentFX 2 Platform
A OpenGL 3D-engine offering features supported by the latest graphics cards combined with portability options that come with the use of Java. [Commercial]

Espresso3D
A high performance real-time 3D game and application engine with OpenGL rendering for the Java. [Free for non-commercial projects]






© 2005 GeneralAnswers.org