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:

  • 3dfx Voodoo 3/4/5/Banshee
  • 3dlabs MX/Gamma, Oxygen GMX 2000
  • ATI Rage Pro, Rage128, Radeon <= 9200

  • Intel i810, i815 , i830
  • Matrox G200, G400, G450

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:

  • NVidia Riva/TNT/Geforce
  • Matrox G200/G400
  • S3 Savage

zusätzlich unter XFree86 3.x:

  • Intel i810
  • SiS 6326
  • S3 Virge, Savage3D

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:

  • gcc main.c -o main -lglut bzw. -lopenglut

sphere.png

MarkusRechberger

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

AltStyle によって変換されたページ (->オリジナル) /