Which leading company uses OpenGl

OpenGL

OpenGL (Open Graphics Library) is a specification for a platform and programming language independent API (Application Programming Interface) for the development of 3D computer graphics. The OpenGL standard describes around 250 commands that allow complex 3D scenes to be displayed in real time. In addition, other organizations (mostly manufacturers of graphics cards) can also define proprietary extensions.

The implementation of the OpenGL API is usually delivered as part of the graphics card driver. These then execute commands from the graphics card, but in particular functions that are not available on the graphics card must also be emulated on the CPU. There are also open source implementations, such as the Mesa library.

The programming model

Many parameters can affect the appearance of rendered objects, for example they can be textured and illuminated, stretched, shifted, transparent or opaque, they can have a rough or smooth surface, etc.

OpenGL was designed as a state machine that does not receive all the required parameters with every function call, but uses the same values ​​until the corresponding states are changed. In this way, you don't have to tell OpenGL the desired color for each vertex, for example, but set a color once, whereupon all subsequent vertices are displayed in this color. In the same way, light sources can be switched on or off globally and many other states can be set.

The reason for this design is that almost every change in the drawing mode entails extensive reorganization of the rendering pipeline, so it is better to avoid this as long as it makes sense to do so. It would also be tiresome for the programmer to enter the dozen of parameters over and over again. Often many thousands of vertices can be edited before a state has to be changed again, while some states are even never changed. For example, the light sources mostly remain the same for all objects in a scene. Many states are retained at least for the duration of the rendering of a complete object, e.g. a car is completely moved around a certain vector and not broken down into its individual parts and these are moved individually. This state-based concept is also followed in Direct3D.

Historical development

OpenGL was originally developed from IRIS GL developed by Silicon Graphics (SGI). In the so-called Fahrenheit project, Microsoft and SGI tried to unify their 3D standards, but the project was canceled due to financial difficulties on the part of SGI.

The OpenGL standard is set by the OpenGL Architecture Review Board (ARB). The ARB has existed since 1992 and consists of a number of companies such as 3Dlabs, Apple, ATI, Dell, Evans & Sutherland, Hewlett-Packard, IBM, Intel, Matrox, NVidia, SGI and Sun. Microsoft, one of the founding members, left the ARB in March 2003. New functions in OpenGL are usually first introduced as manufacturer-specific extensions and then go through manufacturer-independent extensions and ARB extensions to core functionality. This makes it possible to use the latest possibilities of graphics hardware and still keep OpenGL abstract enough.

Due to its platform independence, OpenGL is still the leading 3D standard in the professional field. In the field of computer games, however, it has been increasingly replaced by Microsoft's Direct3D in recent years and is still mainly due to the popularity of id Software's engines and portability to other platforms. The current version of the standard is OpenGL 2.0. With this version, the OpenGL Shading Language was also included in the standard, with the help of which it is not only possible to use predefined functions of the graphics cards, but also to run your own programs (so-called shaders) directly on the graphics card.

Significant APIs related to OpenGL are:

  • GLU, the OpenGL Utility Library, standardized by the ARB and part of every OpenGL implementation.
  • GLX, which forms the interface between the X Window System and OpenGL
  • WGL, the Windows Graphics Library that connects OpenGL and Windows, and
  • AGL and CGL, the equivalent for Mac OS.
  • GLUT, a library that, based on OpenGL, GLU and, depending on the platform, GLX, WGL or AGL, offers a platform-independent API for input / output, creating rendering contexts and the like.
  • GLSL, the OpenGL Shading Language for direct programming of the graphics hardware, part of OpenGL 2.0

Processes used

Typical uses for OpenGL

Supported Platforms

OpenGL is supported by most of the major operating systems:

OpenGL ES (OpenGL for Embedded Systems) is available for the following platforms:

Supported programming languages

Implementations or wrappers are available for many languages:

See also

  • Java 3D, a library of Java classes for creating, manipulating and displaying three-dimensional graphics within Java applications and applets. Uses OpenGL or Direct 3D, depending on the platform and implementation.
  • [[: de: OpenAL] | OpenAL]], a platform-independent 3D audio API that is a kind of audio extension to OpenGL and is based on OpenGL in terms of structure, programming style and naming conventions.
  • SDL, the Simple DirectMedia Layer, a platform-independent API for graphics, audio and input devices. Uses OpenGL for 3D graphics.

literature

  • Richard S. Wright Jr. and Benjamin Lipchak: OpenGL superbible, Third Edition, Sams Publishing, 2005, ISBN 0672326019, the standard work on OpenGL, but only in English.
  • Lorenz Burggraf: Now I'm learning OpenGL. The easy entry into interface programming, Markt + Technik, 2003, ISBN 3827262372

Web links

  • www.OpenGL.org - Official website (English)
  • www.robsite.de - link page with many tutorials
  • nehe.gamedev.net - Very extensive collection of tutorials (English)
  • www.codecolony.de/OpenGL - OpenGL tutorials for beginners and advanced users
  • DGL Wiki - With this wiki, the Delphi OpenGL community has set itself the goal of creating a free knowledge database on the subject of OpenGL, in which all interested parties can contribute or simply look up knowledge.