I’m interested in learning OpenGL for graphics on mobile devices. I’m a complete novice on this subject and I’m looking for any opinions on how best to go about it.
For instance, is it plausible to learn OpenGL ES without any prior knowledge of OpenGL first? Obviously there’s much more documentation on OpenGL as a whole, than for the specifics of embedded systems. So I can see many advantages to learning this first.
Also, my feeling is that I should learn OpenGL ES 1.1 before moving onto version 2.0. Would you agree?
I know that this is a massively involved subject, so I want to make sure that I start off on the right footing. Any advice is appreciated.
Yes, you can learn GL ES without any knowledge of GL.
Embeded systems are an entire different world and have their own specifics. GL ES (1.1) itself is a cleaned up version of GL 1.5.
GL ES 2.0 brings on shaders similar to GL 2.0.
Probably the http://www.khronos.org forums has more GL ES programmers than this place.
The only catch with jumping directly to the ES2 straight away is that the API won’t help you on creating transformation matrices, etc. If you already are familiar with 3D graphics though another API, then I’d advise skipping OpenGL ES 1.x and do ES2, most “new” devices have ES2 (though any device that has ES2 also has ES1.x). With the fixed function pipeline away, ES2 is an easier to learn API than ES1. Also, both Imagination Technologies and ARM offer ES2 emulation libraries (that rely on your system’s native GL to do the actual work). On the other hand, if you are completely new to 3D graphics, then OpenGL ES1.x, because it has the fixed function pipeline, will hold one’s hand some.
Thanks for the help guys. So if, being a complete newbie, I were to begin with GL ES 1.1 as my first introduction to Open GL, are there any resources that you would recommend (books etc) to get me going?
What I’ve found so far, is that many GL ES documents assume a basic understanding of OpenGL to begin with. And the GL ES 2.0 books seem only to cover the differences between this and 1.1.
Perhaps I should start with a plain GL book to pick up the basics, and move from there onto ES?
Sure, you can study regular GL since graphics concepts are graphics concepts.
Like I said, GL ES is a simplified version of GL.
It also has egl for the platform specific stuff like creating a the GL ES surface and destroying it instead of the Windows way of wgl or the *nix way of glX or the Apple way of agl.