OpenGL, OpenGL ES, WebGL, GLSL: let’s put some order (from a frontend web developer POV)
In the software development world, it’s common to see the use of acronyms or abbreviations. Sometimes they’re practical and fast to remember, other times they just make concepts hard to grasp.
In particular, I’ve always struggled with remembering the difference between OpenGL, WebGL, GLSL. Coming from a frontend background (CSS, HTML, JS), the explanations I found took me a while to cement.
So, let’s try following a step-by-step path, from what lies under the hood to what it’s rendered on our screen when we see something like this.
Why do we need the GPU?
Video games, 3D scenes, crazy pixel effects, require a lot more processing power than other applications. Every single pixel we see on the screen needs to be computed and it represents a simple small task.
Individually each pixel task isn’t an issue for the CPU (our life would be very different if it was). But the problem is that even the simplest task has to be done to each pixel on the screen.
That’s why parallel processing enters the game. What if we’d have, instead of a single “gigantic” microprocessor, lots of tiny microprocessors running in parallel at the same time? Wouldn’t it be more efficient…