It never occurred to me to post this question here, my other go-to places have been less than helpful. I'm a sort of long time 1.x developer (who took far too long of a break) and when I started iOS dev naturally I wanted to get into strict 2.0, but I'm finding almost no resources for pure 2.0. There seems to be one book (which uses a custom library, I hate that...), a library or two floating around with almost no documentation, and naturally extension implementations which still rely on 1.x for view matrices, etc. The official documentation has been less than helpful, does anyone have any tips for someone who hasn't ever had to live without basic functions like glMatrixMode and the like?
I would definitely be interested in this as well. This seems to be a topic that doesn't exist in book form (with an iOS focus).
http://www.amazon.com/iPhone-Programming-Developing-Graphical-Applications/dp/0596804822/ref=sr_1_1?ie=UTF8&qid=1301066306&sr=8-1 Digital iphone version - http://itunes.apple.com/us/app/iphone-3d-programming/id371697737?mt=8 I've only read a little bit about it but so far this has been the best resource I have seen. The only problem I have with it is it was written prior to the retina screen so you will have to do your own digging on the internet to figure that out. I have seen a good thread here on TA that discusses openGL and retina.
http://goldenhammersoftware.blogspot.com/2010/10/converting-from-opengl-es1-to-es2-on.html Does that help you get started?
Yes, it's a great book. For people who did not know, here you can read the text of this book for free: http://iphone-3d-programming.labs.oreilly.com/
I'm also slogging through the 1.1 -> 2.0 transition. The two books that I've been reading through are the iPhone 3D programming book mentioned above and the OpenGL ES 2.0 programming guide (http://www.amazon.com/OpenGL-ES-2-0-Programming-Guide/dp/0321502795/). Between the two (and the errata for the programming guide) I've been able to wrap my head around shaders pretty quickly.
http://forums.toucharcade.com/showthread.php?t=68286&highlight=opengl+retina Heres the thread I mentioned above. It would probably be a good idea to read through some of it if you are just getting into openGL and want to wrap your head around setting scale for openGL.
Those are both good books that helped me transition my code from ES 1.1 to 2.0. It's also helpful to follow Apple's best practices guidelines for OpenGL ES which, in my case, made my 1.1 code look very 2.0-like and thus simple to migrate. I would also recommend keeping a good reference to GLSL around like the orange book: http://www.amazon.com/OpenGL-Shading-Language-Randi-Rost/dp/0321637631/ref=sr_1_1?s=books&ie=UTF8&qid=1301079127&sr=1-1 Also, while you are thinking about supporting retina displays, you might want to consider making your graphics engine flexible enough to support other resolutions via VGA/HDMI output cable.
Thanks for the resources guys, I'll check them out. Always a fan of O'Reilly books too. The OpenGL ES 2.0 Programming Guide is the one I think I was originally referring to as using its own library Redbook style. Is this correct or does that book have you use standard GL ES?
I've been considering getting the GLSL book. Is the GLSL version used in the book drastically different from the version that ES 2.0 supports or is it similar enough that you can run the examples with few changes?
I'm only about half way through the book and the only custom library I've seen them use so far is an EAGL wrapper. You can ignore it though because the Xcode GLES template generates that for you. You can see the iPhone code examples for the book at http://code.google.com/p/opengles-book-samples/ - Rob
I believe OpenGL ES shading language is based on GLSL version 1.20 and the GLSL book covers up to version 1.40 so the differences, if any, are small. I think you'll find more important differences in what kind of OpenGL ES extensions Apple has decided to support (refer to Apple's OpenGL ES programming guide).
I looked everywhere for info but in the end, 99% of what I learned was from these three places: The source code generated by pressing 'opengl app' in the xcode new app wizard thing. The Khronos GLES2.0 pages, cross referencing with the GL1.1 version PowerVR's OpenGLES2.0 SDK. (start here)