Warum OpenGL

Wer 3D-Grafik programmieren möchte, möchte in der Regel Spiele programmieren. Das bedeutet, dass man sich mit Grafikkarten auseinandersetzen muss und den Grafikkarten irgendwie mitteilen muss, was man den überhaupt sehen möchte.

Hier gibt es zwei Möglichkeiten: DirectX, das von Microsoft für Microsoft Windows verfügbar ist und OpenGL, welches für Microsoft Windows, aber auch für Linux, für MacOS und sogar für sogenannte Embedded Systems 1). Sogar sehr alte Computersysteme, wie der Commodore Amiga können über OpenGL 3D-Grafik darstellen.

Der Vorteil von OpenGL ist also seine Portablität, so dass man ein Spiel auf verschiedenen Computersystemen anbieten kann und nicht nur auf Windows.

Mit der OpenGL Shading Language lassen sich Berechnungen direkt auf die Grafikkarte auslagern, so dass aufwendige Berechnungen automatisch durchgeführt werden, wenn eine Szene berechnet wird, ohne die CPU zu belasten. Mit einer entsprechend leistungsfähigen Grafikkarte lassen sich so aufwendige Grafiken in Echtzeit rendern.

Aber es geht nicht nur um Spiele. Gerade für CAD bietet OpenGL nützliche und hilfreiche Schnittstellen.

OpenGL unter Windows

Microsoft DirectX und OpenGL sind natürlich direkte Konkurrenten. Zu Beginn war OpenGL deutlich vor DirectX und Microsoft hat sich an der Weiterentwicklung von OpenGL beteiligt. Diese Zeiten sind vorbei. Microsoft liefert unter Windows XP noch integrierte Treiber für OpenGL 1.4 mit2) und beteiligt sich nicht mehr an der Weiterentwicklung von OpenGL. Bezüglich der Leistungsfähigkeit von DirectX und OpenGL, so kann man von einem Kopf-an-Kopf-Rennen ausgehen. Es stellt sich unter dem Strich vorrangig die Frage, ob man portabel Programmieren möchte, oder sich auf Windows festlegen möchte.

Wer sich eine aktuelle Grafikkarte kauft, installiert automatisch die OpenGL-Treiber, die zu der Grafikkarte gehören. Sollte der Computer also nicht älter als 10 Jahre sein, kann man davon ausgehen, dass die Grafikkarte mit ihren eigenen Treibern mehr kann, als Windows erstmal vermuten lässt. Doch selbst die Features bis Version 1.4 füllen bereits dicke Bücher, die über den Umfang eines Tutorials weit hinaus gehen. Wichtig ist, dass wenn jemand Features aus z.B. OpenGL 2.0 verwenden möchte, er nicht Angst davor haben muss, dass das Programm unter Windows nicht läuft, weil Windows XP nur OpenGL 1.4 verwendet. Wenn die Grafikkarte korrekt installiert ist und OpenGL 2.0 fähig ist, dann funkioniert das Feature auch.

Unter MacOS und Linux ist OpenGL-Standard, entsprechend ist die OpenGL-Unterstützung problemloser.


http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D
http://michel.weimerskirch.net/wp-content/uploads/2007/08/directx_opengl_ausarbeitung.pdf

1) Embedded Systems sind Kleinstcomputer, wie aufwendige Taschenrechner, Computer in Autos, aber insbesondere zum Beispiel Mobiltelefone
2) zum Zeitpunkt, an dem dieser Text entsteht ist OpenGL in der Version 4.0