22.83D-Grafik

Als typischer Linux-Anwender werden Sie sich vielleicht fragen: »Wozu brauche ich 3D-Grafik? Ich spiele keine Spiele und verwende keine 3D-Grafikprogramme.« Ganz so einfach ist es aber leider nicht: Alle modernen Desktop-Systeme, also Gnome, KDE und Unity, verwenden die 3D-Funktionen der Grafikkarte zum Verschieben von Fenstern sowie für alle möglichen visuellen Effekte. Ohne 3D-Grafikfunktionen können viele aktuelle Distributionen nicht mehr vernünftig genutzt werden.

Wenn Sie auf realer Hardware arbeiten und keine ganz neue Grafikkarte verwenden, gibt es zum Glück nur selten 3D-Treiberprobleme. Die Open-Source-Treiber intel, nouveau und radeon bieten mittlerweile gute 3D-Unterstützung. Anders sieht es leider oft in virtuellen Maschinen aus: Viele Virtualisierungssysteme können 3D-Funktionen gar nicht weitergeben, und selbst wenn dies vorgesehen ist, treten dabei in der Praxis oft Probleme auf.

Dieser Abschnitt gibt einen Überblick über die in Linux eingesetzten 3D-Technologien. Weitere Hintergrundinformationen zum Thema 3D-Grafik und Linux finden Sie auf der folgenden Seite:

http://www.mesa3d.org
http://dri.freedesktop.org/wiki

Mit dem Programm glxinfo, das sich je nach Distribution im Paket mesa-utils, glx-utils oder Mesa-demo-x versteckt, können Sie die 3D-Funktionen Ihres Systems überprüfen. Das Programm liefert eine Menge Detailinformationen über das laufende GLX-System, also über die OpenGL-3D-Erweiterungen des X Window Systems. Mit grep filtern Sie die entscheidenden Zeilen heraus. Die folgenden Ergebnisse sind auf zwei unterschiedlichen Rechnern entstanden, einmal mit Intel-Grafik und einmal mit einer AMD-Grafikkarte und dem fglrx-Treiber:

root# glxinfo | grep render direct rendering: Yes OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Desktop root# glxinfo | grep render direct rendering: Yes OpenGL renderer string: ATI Radeon R9 M290X OpenGL Engine

Wenn dagegen kein 3D-beschleunigter Treiber läuft, sieht die Ausgabe wie in einem der drei folgenden Beispiele aus. Im ersten Beispiel stehen gar keine 3D-Funktionen zur Verfügung, im zweiten Fall werden sie per Software durch die Mesa-Bibliothek nachgebildet und im dritten Fall durch die llvmpipe-Bibliothek. Die seit 2012 gebräuchliche llvmpipe-Bibliothek erhöht zwar den Rechenaufwand der CPU beträchtlich, ermöglicht aber bei vielen Distributionen die Nutzung von 3D-Funktionen auch ohne einen richtigen 3D-Grafiktreiber.

root# glxinfo | grep render Xlib: extension "GLX" missing on display ":0.0" root# glxinfo | grep render direct rendering: No OpenGL renderer string: Mesa GLX Indirect root# glxinfo | grep render direct rendering: Yes OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.6, 256 bits)

Mit »3D-Desktop-Funktionen« sind grafische Effekte gemeint, die das Öffnen, Schließen und Verschieben von Menüs und anderen Desktop-Elementen begleiten. Dreidimensional sehen diese Effekte heute zwar nur noch selten aus, das ändert aber nichts daran, dass zu ihrer Realisierung 3D-Funktionen der Grafikkarte verwendet werden.

Als 3D-Desktop-Funktionen vor zehn Jahren erstmals verwendet wurden, sah das noch anders aus: Im Überschwang der technischen Möglichkeiten wurden Fenster beim Verschieben verzerrt, der Desktop beim Wechsel der Arbeitsfläche auf einen 3D-Würfel projiziert etc. Das sah lustig aus, lenkte aber ab und machte die Arbeit nicht produktiver. Deswegen sind in der Defaultkonfiguration heute dezentere Effekte üblich.

Für die Realisierung der 3D-Effekte ist der Window Manager verantwortlich. In Gnome 2 und KDE 3 kam dazu das Programm Compiz zum Einsatz. Gnome 3 verwendet den 3D-fähigen Window Manager Mutter und ist nicht mehr auf Compiz angewiesen. Auch KDE kommt seit Version 4 ohne Compiz aus und realisiert die 3D-Effekte selbst. Ein Sonderfall ist aber Ubuntu, das zur Fensterverwaltung die Compiz-Erweiterung Unity verwendet. Compiz ist somit nur noch unter Ubuntu gebräuchlich.

Compiz besteht im Wesentlichen aus zwei Programmen:

Compiz-Anwender können nahezu jeden einzelnen Effekt und die dazugehörenden Tastenkürzel mit dem Compiz Config Settings Manager (CCSM) einrichten (Paket compizconfig-settings-manager, siehe Abbildung 22.5). Die Bedienung dieses Programms ist allerdings wenig intuitiv.

Compiz-Konfiguration für Fortgeschrittene

Abbildung 22.5Compiz-Konfiguration für Fortgeschrittene