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.
source share