OpenGL ist eine standardisierte Schnittstelle für 3D-Darstellung.

Spezifikation: http://www.opengl.org/

Unter Linux gibt es verschiedene Implementierungen der OpenGL-Bibliothek:

Wie funktioniert Mesa?

Mesa bietet die Möglichkeit für Software-Rendering (keine Hardware-Beschleunigung) und ist die Basis für verschiedene Möglichkeiten des Hardware-beschleunigten Rendering.

Hardware-beschleunigte 3D-Darstellung mit Mesa

DRI - Direct Rendering Infrastructure

DRI ist der Standard für XFree86 4.x.

DRI unterstützt derzeit nur sogenanntes Direct Rendering, d. h. es funktioniert nur auf einem lokalen Display. Über eine Remote-X-Session kann DRI nicht benutzt werden.

DRI benötigt passend zur Grafikkarte noch ein DRM (Direct Rendering Management)-KernelModul. Diese sind in Kernel 2.4 bereits für folgende Grafikkarten-Chipsätze enthalten:

Genauere Informationen gibts auf http://dri.sourceforge.net/cgi-bin/moin.cgi/Status.

Für weitere Chipsätze gibt es Treiber und Kernel Module von den Hardware-Herstellern:

Utah-GLX

Utah-GLX ist die einzige Möglichkeit für 3D-Beschleunigung unter XFree86 3.3.6.

Utah-GLX bietet eine plattform-unabhängige Möglichkeit für 3D-Beschleunigung mit Indirect Rendering, d.h. es ist zwar etwas langsamer als Direct Rendering, funktioniert aber dafür auch übers Netzwerk.

Unterstützt werden diese Chipsätze unter XFree86 4.x:

zusätzlich unter XFree86 3.x:

Sonstige

Die proprietären Treiber von NVidia bieten ihre eigene Implementierung der OpenGL-Bibliothek mit Hardwarebeschleunigung.

Xi Graphics liefert mit Accelerated-X einen X-Server für eine breite Hardware-Palette. Darunter praktisch alle ATI, Matrox, einige 3Dlabs und zahlreiche andere Karten (außer NVidia). Es gibt von Accelerated-X auch eine Demo-Version, die jeweils eine halbe Stunde lang läuft. So kann und sollte man vor einem möglichen Kauf unbedingt testen, ob alles wie erwartet funktioniert. Acceleterated-X unterstützt auch Stereoskopie-Ausgabegeräte wie Shutterbrillen mit fast allen Grafikkarten (weit mehr als die Grafikkartenhersteller unter Windows bieten).

Desweiteren liefern HP und SGI eigene Treiber für ihre Linux-Workstations mit (teilweise DRI, teilweise NVIDIA-basierend). SGI Treiber

Programmierung

für OpenGL gibt es einige Frameworks, zum Beispiel Glut. Glut erleichtert das lernen von OpenGL ungemein, es beinhaltet z.B Wrapperfunktionen mit denen sich OpenGL Fenster sehr leicht initialisieren lassen.

Kleines Beispiel: main.c

Compile:

sphere.png

MarkusRechberger

OpenGL (zuletzt geändert am 2007-12-23 22:46:08 durch localhost)