OpenGL ES versus OpenGL

OpenglOpengl Es

Opengl Problem Overview


What are the differences between OpenGL ES and OpenGL ?

Opengl Solutions


Solution 1 - Opengl

> Two of the more significant differences between OpenGL ES and OpenGL are the removal of the glBegin ... glEnd calling semantics for primitive rendering (in favor of vertex arrays) and the introduction of fixed-point data types for vertex coordinates and attributes to better support the computational abilities of embedded processors, which often lack an FPU

Have a look here: OpenGL_ES

Solution 2 - Opengl

OpenGL ES is the opengl api for embedded systems. It is simpler than the normal opengl in terms of the number of the api functions, but may be harder to use, since you will have to use vertex buffers and write more shaders.

When you use a normal opengl, you can use glBegin and glEnd to enclose the geometry primitives you need to draw, but when using Opengl ES, you will have to use vertex buffers. I guess this is for performance concerns.

Currently, there are two Opengl ES versions, the 1.1 version can only support the fixed rendering pipeline, while the 2.0 version supports glsl shader. However it has no fixed rendering pipeline. In other word, you will have to write your own shader for everything.

Opengl ES is mainly used on cell phones and web (webgl). According to the spec, your desktop opengl driver can support all opengl es apis.

Solution 3 - Opengl

Just like to add that OpenGL 3.3 and OpenGL ES 2.0 are mostly interoperable, by using a subset of the features of OpenGL 3.3. My custom C++ engine uses the same API calls, with a few defines, for Android/IOS/Windows/OSX/Linux.

Among the key differences are:

  • lack of geometry shader support
  • no min/max blending (there may be an extension for this)
  • no Quad List primitive
  • more restricted texture formats (especially regarding floating point)
  • glGetTexImage is not available
  • there is no Transform Feedback, same for several other advanced features

There are also many other differences, but that covers several of the important ones.

Solution 4 - Opengl

OpenGL ES means Open Graphics Library 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 OpenGL|ES Official Website: http://www.opengl.org/

you also can get more information from wiki : http://en.wikipedia.org/wiki/OpenGL_ES

Solution 5 - Opengl

Review the OpenGL ES overview here: http://www.khronos.org/opengles/

In short, ES is a subset of Open GL for "embedded systems". Specific differences will depend on the versions and feature sets you're comparing.

Solution 6 - Opengl

The OpenGL ES registry contains detailed API differences between OpenGL ES and the corresponding version of OpenGL:

  • [OpenGL ES 2.0 / OpenGL 2.0][1]
  • [OpenGL ES 1.1 / OpenGL 1.5][2]

However, there isn't a document containing the differences for OpenGL ES 3.0.

[1]: http://www.khronos.org/registry/gles/specs/2.0/es_cm_spec_2.0.25.pdf "OpenGL ES Common Profile Specification 2.0.25 (Difference Specification)" [2]: http://www.khronos.org/registry/gles/specs/1.1/es_cm_spec_1.1.12.pdf "OpenGL ES Common/Common-Lite Profile Specification Version 1.1.12 (Difference Specification)"

Solution 7 - Opengl

I think you'll get a better answer if you ask "what are the differences between OpenGL and OpenGL ES ".

There are profound differences between OpenGL ES 1.1 and ES 2.0, OpenGL 1.5 and 2.0, and OpenGL 3.0 and 4.0.

As others have described ES was written for embedded systems. It also represents the first "house cleaning" of the GL specification since its inception. OpenGL had a) many ways to do the same thing (e.g. you could draw a quad/rect two different ways and blit a pixel image two different ways, etc). ES is simpler than OpenGL with fewer features as a general statement because it's designed for less sophisticated hardware.

I urge you not to look at OpenGL ES 1.1 as it is the past and does not represent the way OpenGL or OpenGL ES is moving architecturally in the future.

Solution 8 - Opengl

The terminology and versions are quite confusing (especially for newbies). For a more holistic view on OpenGL and OpenGL-ES (GLES), see OpenGL - Then and Now.

Solution 9 - Opengl

The main difference between the two is that OpenGL ES is made for embedded systems like smartphones, while OpenGL is the one on desktops. On the coding level, OpenGL ES does not support fixed-function functions like glBegin/glEnd etc... OpenGL can support fixed-function pipeline (using a compatibility profile).

Solution 10 - Opengl

The modern answer, for ES 3.0 compared to OpenGL 4.6, is way different than the accepted answer. Now, all of the fixed-pipeline stuff is gone.

ES, for EMBEDDED SYSTEMS, is far less robust.

Solution 11 - Opengl

OpenGL ES is simply the OpenGL API for embedded systems (OpenGL ES refers to OpenGL Embedded Systems). so its a subset of OpenGL and widely used in cell phones and some VR systems, it's designed for less sophisticated hardware. OpenGL ES has less terms and functions than OpenGL, think of it as you are taking just what you need for that system, because if we dont need a function in whole our work or the hardware can't deal with it, then no mean to add that function but this also makes the use of this API more hard because of the need to write more Shaders and complicated codes to make something simple because OpenGL ES does not provide Shaders in the graphics pipeline as OpenGL. the last version of OpenGL ES is 3.2 it can now provide support for Tessellation for additional geometry details and new geometry shaders. so I advise you to start learning or using OpenGL ES 3.0+ (in case its your target API) because now and the next generation will not use the old versions especially with more powerful hardware and graphics cards we have today; and if your target is OpenGL start with v3.3+ or 4.0+. and when you have more time no problem to make a quick view on the old versions for more understanding how the things were and get developed and why. you can check this link for more details : https://en.wikipedia.org/wiki/OpenGL_ES

Solution 12 - Opengl

OpenGL is 2D and 3D graphics API bringing thousands of applications to a wide variety of computer platform.

OpenGL ES is well-defined subsets of desktop OpenGL.

> OpenGL® ES is a royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles. It consists of well-defined subsets of desktop OpenGL, ...

See this link.

P.S.

WebGL shares specification with OpenGL ES, i.e. if you have learned desktop OpenGL, it is simple to learn the others(OpenGL ES, WebGL).

Solution 13 - Opengl

simply telling, opengl is desktop version and opengl es is for embedded systems like cellphones where there are memory and performance constraints more than that of computers. opengl es would be harder to use.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionkml_ckrView Question on Stackoverflow
Solution 1 - OpenglkamaciView Answer on Stackoverflow
Solution 2 - OpenglBill YanView Answer on Stackoverflow
Solution 3 - OpenglnullspaceView Answer on Stackoverflow
Solution 4 - Opengl罗大柚View Answer on Stackoverflow
Solution 5 - OpenglholtavoltView Answer on Stackoverflow
Solution 6 - OpenglwritheView Answer on Stackoverflow
Solution 7 - Opengluser501138View Answer on Stackoverflow
Solution 8 - Openglap-osdView Answer on Stackoverflow
Solution 9 - OpenglMatthView Answer on Stackoverflow
Solution 10 - OpenglSteve WyattView Answer on Stackoverflow
Solution 11 - OpenglOmar GhannouView Answer on Stackoverflow
Solution 12 - OpenglJafffyView Answer on Stackoverflow
Solution 13 - Openglpratik_zView Answer on Stackoverflow