( Written shortly OpenGL ES) Open Graphics Library for Embedded Systems 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 field of embedded systems.


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

  • Specified counter OpenGL 1.3
  • Specified counter OpenGL 1.5
  • Facilitates hardware acceleration
  • Backward compatible to version 1.0
  • Specified counter OpenGL 2.0
  • Not backward compatible
  • Only programmable hardware using vertex and fragment shaders is supported
  • OpenGL ES Shading Language 1:00
  • Similar to OpenGL 3.3 specified (but lack the Geometry Shader )
  • Backward compatible to version 2.0
  • Stricter requirements for the support of texturing features ( uA 3D textures, 2D array textures)
  • OpenGL ES Shading Language 3.00
  • Compute Shader
  • Separate shader objects
  • Indirect drawing commands
  • Advanced texturing functionality
  • OpenGL ES Shading Language 3:10
  • Backward compatible to version 2.0 and 3.0

Differences to OpenGL

In the specification of OpenGL ES, the Khronos Group put special attention to the compactness of the API. Redundant OpenGL primitives have been removed to reduce the number of paths to get to the same result. This also reflects the elimination of the glBegin () -/glEnd () functions. An OpenGL ES functions fields must be passed, which are then evaluated to draw the respective objects. These functions were also removed in OpenGL version 3.0 or higher. Furthermore, the data type is double not supported. Features that were available only as an argument to double in OpenGL, were replaced by the corresponding functions with float parameters. In the 1.x branch are still two profiles, "Common" and "Common Lite ", defined. If only the Common -Lite profile implemented, also all floating-point types are no longer available. As the only non- integer type a 16:16 - Fixkommaformat is employed. Since Fixkommafunktionen are not present in OpenGL, an emulation of OpenGL ES on the PC is not easily possible. OpenGL ES 3.0 is, however, very similar to OpenGL 3.3, but it lacks the Geometry Shader.


Various companies have OpenGL ES implemented on many different hardware and software platforms. The spread of mobile phones is enough to PDAs to PCs, where the local implementations are more software development than the actual application. The PlayStation 3 uses Optional also to support OpenGL ES 1.1 with extensions to the shader. It also found in many smartphones application, for example Samsung Wave with Bada operating system, Apple's iPhone, the N900 from Nokia and Google's Android -based devices. There are also OpenGL-ES-1.1/2.0-State-Tracker for Gallium3D. One of the best known implementations of OpenGL ES is integrated into the graphics software package Mesa 3D, which is often loaded onto many Unix-like operating systems, the latter in turn often support a greater number of hardware platforms.

Furthermore possess modern browser (eg Firefox 4) an OpenGL ES interface in the form of WebGL.