If I try to learn OpenGL ES 2.x, is OpenGL 3.0 suitable?

I did about an hour of research on this subject, based on zero experience with graphics. The official website says that OpenGL ES 2.x is defined relative to OpenGL 2.0. However, I read that the significant difference between 2.0 / 3.0 is the obsolescence of the fixed function pipeline (I don't know what it is at the moment), and that ES 2.x does not have a fixed function pipeline. These last details confuse me.

The reason I ask is because I am considering buying an OpenGL Superbible 5th Edition . According to the author and some Amazon reviewers, this book is highly biased towards OpenGL 3.0, and in fact, it recommended getting earlier versions for OpenGL 2.0. Given that I'm mostly interested in ES, which version of OpenGL is most relevant, 2.0 or 3.0?

Also, if for some reason I decided to go with ES 1.1, I assume that book 2.0 is the right choice?

+4
source share
1 answer

OpenGL 2.0 was the first with a programmable pipeline, but it works in tandem with a fixed pipeline, so for example, you can write a vertex shader (something that determines how a position in 3d space is converted to a position on the screen) that simply says "use fixed functionality code. " You should no longer do this under 3.0, since the fixed material is out of date - you are clearly warned that it may disappear in the future.

Unfortunately, the GL shader language used with GL 3.0 is ahead of what is associated with GLES 2.0 (1.30 for the former, with a reduced 1.20 for the latter). And these are not just esoteric functions that differ from each other, these are some fundamental names that will not be so pleasant when you start. For instance. GLSL ES 1.0 (as in GL ES 2.0) adheres to the concepts of uniforms (things that you point no more than once to a triangle), and changes (things that you calculate to the top, and hardware for intermediate values ​​for a pixel is automatic). GLSL 1.30 considers potential future additional programmable stages of the pipeline, therefore, prefers a more abstract idea of ​​input and output of each part, creating different keywords and, therefore, a different syntax. It is not difficult to compare one with the other, but perhaps a real obstacle at startup.

Ideally, start with genuine GLSL 2.0 text. Since 1.x is all about fixed functionality, it makes no sense to work if you really have no interest in learning the older API - almost everything except how you transfer data to the GPU is different.

However, if you want to learn ES 1.x from desktop text, then books on 1.5 are the way forward. 1.5 is the API on which ES 1.0 is based, with most of the inefficient or rarely used bits of functionality disabled.

Conversely, webGL is definitely ES 2.0 in the browser, and the immediate interest in web developers is likely to become well-documented on the Internet. Perhaps it was an idea to take a look at this.

+4
source

All Articles