Open GL ES 1.1 vs OpenGL ES 2.0?

I’ve started developing a program for mobile devices. The program should be able to do the following:

  1. Render basic map data.
  2. Render overlays based on numeric data.
  3. Support (at least some) Android and IPhone devices.

Effects would be pretty basic.

My goal in writing this app is:

  1. Further my education in openGL with hopes of doing it professionally in the near future.
  2. Develop a successful application that target a diverse set of handsets, not necessarily for profit though.
  3. Complete the application over the course of 1 year, limited to 3 - 6 hours a week.

My question is should I use OpenGL ES 1.1 or OpenGL ES 2.0? I have yet to find a resource which helps one decide between the two. My feeling was that 1.1 would have a broader audience but given that my target would be 1 year from now, that may not be as big of an issue. I have the perception that openGL 2.0 would also be better from a career development standpoint. However, I have some exposure to openGL in college using the non-programmable pipeline, so I would be more familiar with openGL 1.1 and would be more likely to finish it. Looking at code samples, openGL ES 2.0 appears to have more complexity and I wonder if it is overkill considering OpenGL ES 1.1 should be able to support all effects I need?

What are your thoughts, should I go with OpenGL ES 1.1 or 2.0?

  1. Support (at least some) Android and IPhone devices.

This is the only thing that really matters. The Wikipedia article on OpenGL ES states that 2.0 is supported on Android 2.2 and above, as well as all 3rd generation (or above) iOS devices. If that is too constricting in terms of available devices, for your needs, then use 1.1.

I have the perception that openGL 2.0 would also be better from a career development standpoint.

For the most part, any career you may have in real-time 3D graphics will require some knowledge of shaders. It’s a basic tool at this point, like knowing how to use textures.

The GL ES 2.0 devices cost a lot more than GL ES 1.1. So your purse may be the deciding factor. You mention a couple of devices and all of them are in the $200-600 price range. Also, once you finish, these devices may be obsolete by then.

Alfonse is right, shaders are in, fixed pipeline is out.

You’ll find other questions are also relevant. Such as, do I use a pre-made engine or write my own… Following the latter path is not the same as following the former path. If you use a pre-made engine, you’ll have more time for artistic work than if you write your own, for example.

If you use a pre-made engine, you’ll have more time for artistic work than if you write your own, for example.

Of course, if he uses a pre-made engine, he won’t be learning OpenGL. Thus working against his stated goal #1. Granted, he’ll be more likely to achieve goals #2 and #3.

Almost every machine nowadays has a shader-capable GPU. I say, make some of your app first, with an eye towards GL ES 2.0 compatibility. There are emulators and GPUs with ES 2.0 and ES 1.1 emulation capability. Don’t go out there and waste money for a project that may not take off.