(like 256x256). This allowed for more efficient memory usage when using images like 800x600 .
The true genius of OpenGL 20 was its longevity. It taught a generation of programmers that the GPU is not a configurable black box—it is a programmable parallel computer. The shader-centric world of 2025, from real-time ray tracing (RTX) to neural rendering, traces its lineage directly to the GLSL shaders that first shipped in 2004.
While we have moved on to "Core Profiles" and more explicit APIs today, the logic of the —the heart of OpenGL 2.0—is still how we draw the world on our screens today.
This shift moved control from the driver to the developer. With the Vertex Shader, programmers could now manipulate the geometry of 3D models on a per-vertex basis, allowing for complex character animations, procedural shape morphing, and realistic skinning without burdenening the CPU. Simultaneously, the Fragment Shader (historically referred to as a pixel shader) gave developers control over how every single pixel on the screen was colored. This allowed for per-pixel lighting calculations, texture blending, and special effects that were mathematically precise rather than state-dependent. The introduction of GLSL democratized high-end graphics, ensuring that a shader written for one manufacturer's card would work on another's, fostering a unified ecosystem for visual development.
And there was the rub. OpenGL could do shaders, using a clunky, assembly-like language called ARB_vertex_program and ARB_fragment_program. You had to write raw GPU assembly, manage registers manually, and there was no compiler to help you. It was powerful, but it was also a punishment.
The year was 2004, and the Silicon Knights were restless. For years, the world of 3D graphics had been a rigid place—a "Fixed-Function Pipeline" where light and shadow followed strict, hard-coded rules. If you wanted a pixel to look like chrome, you had to trick the machine. You couldn’t teach it. Then came .