20 - Opengl
Modern OpenGL is 4.6 (2017-2025 era), featuring compute shaders, tessellation, and SPIR-V intermediates. So why bother with ?
: Support for 16-bit and 32-bit floating-point precision in textures, enabling high dynamic range (HDR) rendering and more accurate physical simulations.
OpenGL 2.0 was a significant update to the OpenGL API, bringing improved performance, programmability, and compatibility. While it introduced a steep learning curve and required more powerful hardware, it paved the way for more complex and efficient graphics rendering. OpenGL 2.0 remained a popular version of the API for many years and is still used in some legacy applications today. opengl 20
The crown jewel of OpenGL 2.0 was the formal integration of the into the core specification. While previous extensions allowed for assembly-like programming of the graphics card, GLSL brought a high-level, C-style language to the masses.
The architecture of OpenGL 2.0 served as the exact blueprint for , the graphics API that powered the mobile revolution. Every early Android smartphone, iPhone, and handheld console (like the Nintendo 3DS) utilized this exact programmable pipeline architecture. WebGL 1.0 Integration Modern OpenGL is 4
The defining feature of OpenGL 2.0 was the . Instead of using complex hardware assembly language, programmers could write high-level, C-like code to control the GPU. This introduced two critical components:
[ Application CPU Data ] │ ▼ ( Vertex Buffer ) │ ▼ ┌─────────────────────────────────┐ │ Vertex Shader (GLSL) │ <-- Programmable: Handles position & math └─────────────────────────────────┘ │ ▼ ( Primitive Assembly ) │ ▼ ( Rasterization Unit ) │ ▼ ┌─────────────────────────────────┐ │ Fragment Shader (GLSL) │ <-- Programmable: Handles colors & textures └─────────────────────────────────┘ │ ▼ ( Per-Fragment Testing ) <-- Scissor, Depth, Stencil, Blending │ ▼ [ Framebuffer / Screen ] Historical Context: The Shader Wars OpenGL 2
And when they ran it, a simple cube rendered, its colors mapping to its vertex normals. It was a trivial shader. But it was the first breath of a new life.
This shader catches the interpolated color values and outputs the final color to the screen pixels.