OpenGL ist eine Spezifikation für ein plattform- und programmiersprachenunabhängiges API (Application Programming Interface) zur Entwicklung von 3D-Computergrafik. Der OpenGL-Standard beschreibt etwa 250 Befehle, die die Berechnung komplexer 3D-Szenen in Echtzeit erlauben. Hersteller können jedoch auch eigene Erweiterungen definieren.
OpenGL ist nur ein Standard, keine Implementierung. Wie das Betriebssystem die Befehle verarbeitet, ist Sache des Grafikkarten-Treibers, der die Befehle an die Grafikkarte weitergibt (Hardware- oder auch Direct Rendering) oder auf der CPU ausführt, wenn die Grafikkarte den entsprechenden Befehl nicht bearbeiten kann (Software Rendering). Die Implementierungen werden daher in der Regel vom Hersteller zur Verfügung gestellt, es gibt jedoch auch Open Source Varianten wie z.B. die Mesa Bibliothek.
OpenGL entstand ursprünglich aus dem von Silicon Graphics (SGI) entwickelten IRIS GL. Im so genannten Fahrenheit Projekt versuchten Microsoft und SGI ihre 3D-Standards zu vereinheitlichen, das Projekt wurde jedoch aufgrund finanzieller Schwierigkeiten auf Seiten von SGI abgebrochen.
Der OpenGL-Standard wird vom OpenGL Architecture Review Board (ARB) festgelegt. Das ARB exisitiert seit 1992 und besteht aus einer Reihe von Firmen wie 3Dlabs, Apple, ATI, Dell, Evans & Sutherland, Hewlett-Packard, IBM, Intel, Matrox, NVIDIA, SGI und Sun. Microsoft, eines der Gründungsmitglieder, hat das ARB im März 2003 verlassen.
Aufgrund seiner Plattformunabhängigkeit ist OpenGL im professionellen Bereich als 3D-Standard nachwievor führend. Im Bereich der Computerspiele wurde es jedoch in den letzten Jahren zunehmend von Microsofts DirectX verdrängt. Die aktuelle Version des Standards ist OpenGL 1.5.
Weitere bedeutende im Zusammenhang mit OpenGL stehende APIs sind:
- GLU, die OpenGL Utility Library, die vom ARB standardisiert und Teil jeder OpenGL Implementierung ist.
- GLX, die das Interface zwischen X und OpenGL bildet
- WGL, die Windows Graphics Library, die OpenGL und Windows verbindet und
- AGL, das entsprechende Gegenstück für MacOS.
- GLUT, eine Bibliothek, die aufbauend auf OpenGL, GLU und je nach Plattform GLX, WGL oder AGL eine plattformunabhängige API für Ein-/Ausgabe, Erstellen von Rendering-Kontexten und dergleichen mehr bietet.
- OpenAL, eine Audiobibliothek für Raumklang, deren API an OpenGL angelehnt ist.