OpenGL®, il linguaggio grafico aperto, è uno standard open source e un’interfaccia di programmazione astratta (API) per la programmazione di grafica tridimensionale (3D) nei programmi per computer. Affinché l’API funzioni quando viene compilata ed eseguita, il computer che esegue il programma deve disporre dei driver OpenGL® corretti installati. Esistono molti tipi di driver, ma tutti hanno lo scopo unico di fungere da interfaccia tra il codice scritto utilizzando l’API OpenGL® e l’hardware che esegue il rendering della grafica. I driver OpenGL® non sono sviluppati o rilasciati dalle persone che gestiscono l’API OpenGL®; sono invece rilasciati dai produttori dell’hardware all’interno del computer. L’unica differenza, in realtà, tra i diversi tipi di driver OpenGL® è il codice dell’hardware con cui si interfaccia.
Lo standard per OpenGL® alla fine è diventato una piattaforma unificata e semplice e per lo più indipendente dal linguaggio di funzioni grafiche 3D di base che potrebbero essere utilizzate come un modo di basso livello per interfacciarsi con l’hardware. È progredito in questa direzione a causa di una quantità crescente di API 3D proprietarie, ognuna con filosofie di progettazione e firme funzionali diverse. L’API è stata adottata da programmatori e produttori di hardware allo stesso modo, perché era open source e non richiedeva l’acquisto di una licenza per l’uso come facevano altri sistemi operativi o API specifiche del linguaggio.
I driver OpenGL® di base sono prodotti dai produttori di schede grafiche, schede di espansione e acceleratori grafici. Ciò significa che ogni driver è scritto in base a specifiche esatte e accurate per l’hardware di destinazione e che l’hardware può essere prodotto con ottimizzazioni mirate al driver per aumentare le prestazioni. L’ampia accettazione dell’API e l’overhead relativamente basso che ne deriva l’hanno resa una scelta preziosa per le applicazioni grafiche ad alte prestazioni e, a sua volta, ha spinto i produttori di hardware a impegnarsi per ottimizzazioni di basso livello per integrare tali prestazioni con le loro schede .
In risposta agli sforzi dei produttori di hardware, gli sviluppatori di OpenGL® hanno fornito un meccanismo che avrebbe consentito ai driver di implementare operazioni personalizzate che potevano essere codificate nei driver OpenGL®. Queste caratteristiche speciali di diversi componenti hardware potrebbero essere incluse nell’API OpenGL®. Ciò consentirebbe a un produttore di disporre di una scheda grafica che supporti le funzioni con accelerazione hardware, come gli algoritmi di simulazione del tessuto, e consentirebbe all’API OpenGL® di chiamare e interfacciarsi con tale funzionalità. Queste estensioni hanno fornito un meccanismo attraverso il quale i driver e l’API OpenGL® potevano diventare un meccanismo fluido ed estensibile per la programmazione di grafica 3D.
A partire dal 2011, i driver OpenGL® sono individuali per ogni componente hardware che supporta lo standard. Non può esistere un singolo driver unificato, perché ogni componente hardware è nettamente diverso e talvolta utilizza informazioni proprietarie. Ciò significa che, sebbene tecnicamente esistano molti tipi di driver OpenGL®, uno per ogni scheda hardware, svolgono tutti la stessa identica funzione dal punto di vista della programmazione.