OpenGL ES versus OpenGL [closed]

What are the differences between OpenGL ES and OpenGL ?


Solution 1:

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 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:

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 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