Learning OpenGL ES 1.x

If I may plug my own work, I'd direct you to my post at http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es. It's not the best overall introduction to OpenGL ES, and it gets fairly technical pretty quickly, but it's my take on the subject from my experience writing Molecules. Also, I've just started reading the book "Mobile 3D Graphics: with OpenGL ES and M3G".

I agree with the suggestion that the best way to learn is by doing. I started out knowing nothing about OpenGL and three weeks later had Molecules in for review in the App Store. Once you have a clear set of goals ("OK, I need to draw a 3-D sphere", "Now I need to rotate it on demand") it becomes easy to find the examples or parts of documentation that apply to just the task you're working on.

There are many code examples out there, although a lot of them use immediate mode and other calls that are not supported in OpenGL ES. I'd love to add to the list by releasing the source to Molecules, but Apple's NDA has prevented that so far. The source code to Molecules is now available.

Video for the class I taught on OpenGL ES 1.1 is now available to download as part of my spring course on iTunes U. The notes for that session can be found here. And the fall semester videos have a class on OpenGL ES 2.0.

Also, Philip Rideout has released an excellent book on OpenGL ES 1.1 and 2.0 development for the iPhone, called iPhone 3D Programming. I highly recommend it.


FYI, Brad Larsons Molecules code is now available here.


There are some excellent tutorials at https://web.archive.org/web/20160309222642/http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html


There is some documentation in iPhone SDK itself.

Other than that, just take what you know about OpenGL (or learn that via other means), and forget about all things that are "old cruft" (display lists, immediate mode, things that are in OpenGL but are not directly related to just drawing triangles). Basically, unlearn everything that has been declared deprecated in OpenGL 3.0.

GL ES 1.x is for pretty simple devices. What you have is a way to draw geometry (vertex buffers), manage textures and setup some fixed function state (lighting, texture combiners). That's pretty much all there is to it.