Thursday, October 8, 2009

OpenGL ES 2.0 - What has been cut out


OpenGL is changing with each release. For OpenGL programmers its a busy time to keep up. OpenGL ES 1.1 and OpenGL ES 2.0 are virtually different languages. The approaches programmers must take to getting 3D on the screen change dramatically. The best known change is the addition of shaders (programmable bits of the graphics pipeline) but whats left out is almost as dramatic:

  • Immediate mode (glBegin/End and glVertex)
  • Per primitive attributes like glColor, glNormal
  • Explicit image drawing (glDrawPixels, glCopyPixels etc.)
  • Antialiased points and lines
  • The matrix stack and commands for co-ordinate transforms (eg glRotate)
  • Non power of 2 textures with mip-mapping
  • 3D textures
  • Many data commands like glNormalPointer, glColorPointer, client state etc.
  • Material and light mode
  • Fog
  • Texture environment (no fixed function blending)
In summary OpenGl coders must now:
  • Provide their own maths libraries
  • Use arrays for declaring 3d data
  • Write shaders and pass in their own data for transforms and lighting and materials
  • Handle images via textures
The language is streamlined, more in line with modern graphics thinking and better for the hardware to accelerate. However, its also no longer an easy start language (which was one advantage over DX) and lots more burden is on the programmer.

No comments:

Post a Comment