Open Graphics Library for Embedded Systems
OpenGL ES
|
|
---|---|
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 |
---|
version | Description / changes |
---|---|
1.0 |
|
1.1 |
|
2.0 |
|
3.0 |
|
3.1 |
|
3.2 |
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
- ↑ Khronos: Khronos Expands Scope of 3D Open Standard Ecosystem (press release)
- ↑ https://www.khronos.org/conformance/adopters/conformant-products/opengles
- ↑ EXT_primitive_bounding_box
- ↑ Michael Larabel: OpenGL ES 1.1 / 2.0 State Trackers For Gallium3D. Phoronix , May 15, 2009, accessed March 3, 2015 .
- ^ Chrome Developer's Guide: 3D Graphics
- ↑ https://www.khronos.org/registry/webgl/specs/latest/2.0/