OpenGL 3 (3DLabs e l'evoluzione dell'OpenGL)
Per capire approfonditamente la controversia che circonda l'annuncio delle OpenGL 3, dobbiamo fare un salto indietro al 2002. A quei tempi, come abbiamo detto nell'introduzione, le OpenGL stavano perdendo terreno. Fino a quel momento, le DirectX avevano semplicemente copiato le funzionalità delle OpenGL. Questa volta, tuttavia, le API di SGI sono state sorpassate. Con le DirectX 9, Microsoft introdusse il supporto per un linguaggio shader di alto livello, HLSL, mentre le OpenGL non avevano nulla di simile da offrire. È importante notare che l'origine del motore dell'OpenGL risiede nell'IRIS GL, un'API inizialmente creata da SGI per mostrare la funzionalità del proprio hardware. Per molto tempo, ATI e nVidia hanno semplicemente seguito il modello di rendering di SGI, il che significa che l'OpenGL era ottimo per le schede dei vari produttori ancora prima che fossero rilasciate. Ma con l'introduzione degli shader, le nuove GPU si stavano allontanando dalla tradizionale pipeline di rendering.
In quei giorni, un'azienda si rese conto della necessità di una rapida evoluzione delle OpenGL, se le si voleva vedere accoppiate alle moderne GPU: 3DLabs. Nulla di davvero sorprendente, poiché 3DLabs aveva abbandonato le schede da gioco per concentrarsi sul mercato professionale, dove le OpenGL erano lo standard. 3DLabs presentò un piano su diversi punti per portare le OpenGL verso una nuova era. Il primo punto era l'inclusione di un linguaggio shader di alto livello: GLSL. Poi ci sarebbe stata una completa rivisitazione delle API. Molte delle funzionalità presenti non avevano più senso per le schede 3D moderne, anche se la necessità di retro compatibilità non era in discussione, quantomeno a livello software. Questo non solo rendeva la scrittura di driver più complessa, ma aumentava la possibilità di creazione di bug.
3DLabs volle concentrarsi su un sottoinsieme di funzionalità in grado di garantire un'esecuzione efficiente da parte della GPU, ed eliminare funzionalità non più necessarie o ridondanti. Questo sottoinsieme fu chiamato OpenGL 2.0 Pure. Per la retrocompatibilità, le caratteristiche delle OpenGL 1.x erano presenti nelle OpenGL 2.0.
Sfortunatamente, dopo interminabili discussioni all'interno dell'ARB, il piano fu respinto. E quando le OpenGL 2.0 divennero finalmente disponibili, l'unica differenza rispetto la versione precedente fu l'aggiunta del supporto per il GLSL. Tutte le altre proposte di 3DLabs furono cestinate, lasciando le OpenGL ancora dietro alle API di Microsoft.