Not the place for an article draft, see below
OpenGL ES
Original author(s)Khronos Group
Developer(s)Khronos Group
Stable release
3.1[1] / March 17, 2014 (2014-03-17)
Operating systemCross-platform
PlatformCross-platform
TypeAPI
Licensefree of charge, royalty or licensing
Websitewww.khronos.org/opengles

OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, computer tablets, video game consoles and PDAs.

The API is cross-language and multi-platform. There is no equivalent to OpenGL libraries like GLUT or GLU for OpenGL ES. OpenGL ES is managed by the non-profit technology consortium Khronos Group.

Versions

edit

Several versions of the OpenGL ES specification now exist. OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification. This means that, for example, an application written for OpenGL ES 1.0 should be easily portable to the desktop OpenGL 1.3; as the OpenGL ES is a stripped-down version of the API, the reverse may or may not be true, depending on the particular features used.

OpenGL ES comes with its own version of shading language (OpenGL ES SL), which is different from OpenGL SL.[2]

Version 1.0 and 1.1 both have common and common lite profiles, the difference being that the common lite profile only supports fixed-point instead of floating point data type support, whereas common supports both.

OpenGL ES 1.0

edit

OpenGL ES 1.0 contained much functionality stripped from the original OpenGL API and a little bit added. One significant difference between OpenGL and OpenGL ES is that OpenGL ES removed the need to bracket OpenGL library calls with glBegin and glEnd. Other significant differences are that the calling semantics for primitive rendering functions were changed in favor of vertex arrays, and fixed-point data types were introduced for vertex coordinates. Attributes were also added to better support the computational abilities of embedded processors, which often lack a floating point unit (FPU). Many other functions and rendering primitives were removed in version 1.0 to produce a lightweight interface, including:

  • quad and polygon rendering primitives,
  • texgen, line and polygon stipple,
  • polygon mode and antialiased polygon rendering are not supported, although rendering using multisample is still possible (rather than alpha border fragments),
  • ARB_Image pixel class operation are not supported, nor are bitmaps or 3D textures,
  • several of the more technical drawing modes are eliminated, including frontbuffer and accumulation buffer. Bitmap operations, specifically copying pixels (individually) is not allowed, nor are evaluators, nor (user) selection operations,
  • display lists and feedback are removed, as are push and pop operations for state attributes,
  • some material parameters were removed, including back-face parameters and user defined clip planes.

OpenGL ES 1.1

edit

OpenGL ES 1.1 added features such as mandatory support for multitexture, better multitexture support (including combiners and dot product texture operations), automatic mipmap generation, vertex buffer objects, state queries, user clip planes, and greater control over point rendering.

OpenGL ES 2.0

edit

OpenGL ES 2.0 was publicly released in March 2007.[3] It is based roughly on OpenGL 2.0, but it eliminates most of the fixed-function rendering pipeline in favor of a programmable one in a move similar to transition from OpenGL 3.0 to 3.1.[4] Control flow in shaders is generally limited to forward branching and to loops where the maximum number of iterations can easily be determined at compile time.[5] Almost all rendering features of the transform and lighting stage, such as the specification of materials and light parameters formerly specified by the fixed-function API, are replaced by shaders written by the graphics programmer. As a result, OpenGL ES 2.0 is not backward compatible with OpenGL ES 1.1. Some incompatibilities between the desktop version of OpenGL and OpenGL ES 2.0 persisted until OpenGL 4.1, which added the GL_ARB_ES2_compatibility extension.[6]

OpenGL ES 3.0

edit

The OpenGL ES 3.0 specification[7] was publicly released in August 2012.[8] OpenGL ES 3.0 is backwards compatible with OpenGL ES 2.0, enabling applications to incrementally add new visual features to applications. OpenGL 4.3 provides full compatibility with OpenGL ES 3.0.

New functionality in the OpenGL ES 3.0 specification includes:

OpenGL ES 3.1

edit

The OpenGL ES 3.1 specification[10] was publicly released in March 2014. New functionality in OpenGL ES 3.1 includes:[11]

  • Compute shaders
  • Independent vertex and fragment shaders
  • Indirect draw commands

OpenGL ES 3.1 is backward compatible with OpenGL ES 2.0 and 3.0, thus enabling applications to incrementally incorporate new features.

Platform usage

edit

OpenGL ES 1.0

edit

OpenGL ES 1.0 added an official 3D graphics API to the Android[12] and Symbian[13] operating systems, as well as by QNX[14] It is also supported by the PlayStation 3 as one of its official graphics APIs[15] (the other one being low level libgcm library) with Nvidia's Cg in lieu of GLSL.[16] The PlayStation 3 also includes several features of the 2.0 version of OpenGL ES.

OpenGL ES 1.1

edit

The 1.1 version of OpenGL ES is supported by:

OpenGL ES 2.0

edit

Supported by:

OpenGL ES 3.0

edit

Supported by:

Supported by some recent versions of these GPUs: [1] [2]

References

edit
  1. ^ Khronos Releases OpenGL ES 3.1 Specification
  2. ^ http://stackoverflow.com/a/8872201/239247
  3. ^ "Khronos Press Releases - OpenGL ES 2.0". Khronos.org. 2007-03-05. Retrieved 2010-12-23.
  4. ^ Edward Angel, Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL, 6th Edition, p. xxi-xxii, ISBN 978-0-13-254523-5
  5. ^ "The OpenGL® ES Shading Language" (PDF). Khronos.org. Retrieved 2013-02-16.
  6. ^ http://www.opengl.org/registry/doc/glspec41.core.20100725.pdf
  7. ^ "The OpenGL ES 3.0 specification".
  8. ^ "Khronos Releases OpenGL ES 3.0 Specification to Bring Mobile 3D Graphics to the Next Level". Khronos.org. 2012-08-06. Retrieved 2012-08-06.
  9. ^ "The OpenGL ES 3.0 Shading Language Online Reference Pages".
  10. ^ "The OpenGL ES 3.1 specification".
  11. ^ "Khronos Releases OpenGL ES 3.1 Specification". Khronos.org. 2014-03-17. Retrieved 2014-03-17.
  12. ^ What is Android?, Google
  13. ^ Symbian OS v9.5 product sheet, Symbian
  14. ^ "Using OpenGL ES". QNX Software Development Platform (v6.5.0). QNX. Retrieved 2011-01-08.
  15. ^ OpenGL ES demo in PPT format
  16. ^ SONY/Khronos OpenGL ES/PSGL Presentation in PPT format
  17. ^ "New in this beta release". Release Notes - BlackBerry Java Application. Research in Motion. Retrieved 2009-12-08.
  18. ^ Koh, Damian (2009-11-29). "What to expect for BlackBerry smartphones". CNET Asia. Retrieved 2009-12-08.
  19. ^ a b "PDK - Overview". HP Palm Developer Center. Retrieved 2010-12-23.
  20. ^ "DMP announces OpenGL ES 1.1 conformant PICA 200 adopted by Nintendo". 2010-06-21. Retrieved 2013-06-02.
  21. ^ "Android 2.2 specifications". Google. 2010-07-01.
  22. ^ "Maemo software - Nokia > Nokia N900 mobile computer > Technical specifications". Nokia Corporation. Retrieved 12 January 2010.
  23. ^ https://developer.apple.com/ios7/

Further reading

edit
edit


Es

Your submission at Articles for creation: sandbox (April 22)

edit
 
Your recent article submission to Articles for Creation has been reviewed! Unfortunately, it has not been accepted at this time.
Please read the comments left by the reviewer on your submission. You are encouraged to edit the submission to address the issues raised and resubmit when they have been resolved.

You seem to have got rather confused. You submitted an article for creation request at User:Sasuke2532/sandbox but the content was blank. You have, however, apparently pasted what you may have intended to be the content in 3 places, namely:

none of which is the right place for a draft article. I was going to suggest that you try again through the AFC process, but then I saw that the subject of your draft was OpenGL ES, for which the article already exists with apparently very similar content to your draft, so I am rather confused as to what you are trying to do? --David Biddulph (talk) 18:18, 22 April 2014 (UTC)Reply