Open Graphics Library for Embedded Systems

from Wikipedia, the free encyclopedia
OpenGL ES

OpenGL ES Nov14.svg
Basic data

developer Khronos Group
Current  version 3.2
(August 10, 2015)
operating system platform independent
category Programming interface
License different
www.khronos.org/opengles

Open Graphics Library for Embedded Systems ( OpenGL ES for short ) is a specification for a platform- and language-independent programming interface for developing 3D computer graphics . The specification describes a simplified version of the OpenGL specification, which is particularly suitable for use in the area of embedded systems .

Versions

In contrast to OpenGL, OpenGL ES is specified in two separate branches. Branch 1.x defines an interface to hardware without vertex or fragment shaders . From 2.0 an interface for graphics chips with shaders is defined.


Legend: Older version; no longer supported Older version; still supported Current version Current preliminary version Future version

version Description / changes
Older version; no longer supported: 1.0
  • Specified against OpenGL 1.3
Older version; still supported: 1.1
  • Specified against OpenGL 1.5
  • Facilitates hardware acceleration
  • Downward compatible with version 1.0
Older version; still supported: 2.0
  • Specified against OpenGL 2.0
  • Not backwards compatible
  • Only programmable hardware with vertex and fragment shaders is supported
  • OpenGL ES Shading Language 1.00
Older version; still supported: 3.0
  • Specified similar to OpenGL 3.3 (but the geometry shaders are missing)
  • Downwards compatible with version 2.0
  • Stricter specifications for textures (including 3D textures, 2D array textures)
  • OpenGL ES Shading Language 3.00
Older version; still supported: 3.1
  • Compute shader
  • Separate shader objects
  • Indirect drawing commands
  • Extended texturing functionality
  • OpenGL ES Shading Language 3.10
  • Backwards compatible with version 2.0 and 3.0
Current version: 3.2
  • Geometry shader
  • Tessellation control shader
  • Tessellation evaluation shader
  • Primitive bounding boxes
  • Debugging messages
  • OpenGL ES Shading Language 3.20

Differences to OpenGL

When specifying OpenGL ES, the Khronos Group paid special attention to the compactness of the API. Redundant OpenGL operations have been removed to reduce the number of paths that lead to the same result. This is also reflected in the elimination of the glBegin () / glEnd () functions. Fields must be passed to OpenGL-ES functions , which are then evaluated for drawing the respective objects. These functions have also been removed from OpenGL from version 3.0. Furthermore, the data type double is not supported. Functions that only existed in OpenGL with double as an argument have been replaced by corresponding functions with float parameters.

Two profiles, " Common " and " Common Lite ", are also defined in the 1.x branch . If only the Common-Lite profile is implemented, all floating point types are no longer available. A 16.16 fixed point format is used as the only non-integer type . Since there are no fixed point functions in OpenGL, an emulation of OpenGL ES on the PC is not easily possible. OpenGL ES 3.0, on the other hand, is very similar to OpenGL 3.3, but it lacks the geometry shaders .

Implementations

Various companies have implemented OpenGL ES on many different hardware and software platforms. The spectrum ranges from mobile phones to PDAs to PCs, with the implementations there serving more for software development than for actual application. The PlayStation 3 also optionally uses OpenGL ES 1.1 with extensions to support shaders. It is also used on many smartphones, for example Samsung's Wave with Bada operating system, Apple's iPhone , the N900 from Nokia and Android- based devices from Google. There is also OpenGL-ES-1.1 / 2.0-State-Tracker for Gallium3D . One of the best-known implementations of OpenGL ES is integrated in the graphics software package Mesa 3D , which is often installed on many UNIXoid operating systems , the latter in turn often supporting a larger number of hardware platforms.

Modern browsers (e.g. Firefox from version 4; Google Chrome , in particular Google Native Client ) also have an OpenGL-ES interface in the form of WebGL . Version 2.0 of WebGL is based on OpenGL ES 3.0 and is supported by Firefox 51+, Chrome 56+ and Opera 43+.

Individual evidence

  1. Khronos: Khronos Expands Scope of 3D Open Standard Ecosystem (press release)
  2. https://www.khronos.org/conformance/adopters/conformant-products/opengles
  3. EXT_primitive_bounding_box
  4. Michael Larabel: OpenGL ES 1.1 / 2.0 State Trackers For Gallium3D. Phoronix , May 15, 2009, accessed March 3, 2015 .
  5. ^ Chrome Developer's Guide: 3D Graphics
  6. https://www.khronos.org/registry/webgl/specs/latest/2.0/

Web links