OpentGL-Tests und -Analyse mit Exceed 3D
Exceed 3D installiert auf Wunsch eine Reihe
kleiner X-Clients, die verschiedene OpenGL-Features nutzen bzw.
demonstrieren.
Abgesehen von der Frage, ob OpenGL überhaupt über Exceed 3D zur
Verfügung steht, können mit diesen Progrämmchen die korrkete
Darstellung einiger OpenGL-Features (Beleuchtung/Schattierung,
Animation etc.) testen.
Die Abb. links zeigt als Beispiel den Vulcan Gunner.
Er
erscheint zunächst als Drahtmodell ("Wireframe"). Drücken einer
Maustaste öffnet das Steuerungsmenü, wo mit "Toggle Wireframe" der
Shaded Mode eingeschaltet (und wieder abgeschaltet) wird.
Mit den Cursor-Tasten wird die Ansicht in beleibige Richtung
verschoben; weitere Aktionen findet man unter "How do I ...".
Um zu sehen, ob die OpenGL-Performance brauchbar ist, maximiere man das
Vulcan Gunner-Fenster und klicke "Start Walk" - nur im Shaded Mode
sinnvoll, da sonst rasend schnell.
Ein angenehmeres Bild liefert das Beispielprogramm Atlantis,
das
gerade als maximiertes wie ein froßes Aquarium erscheint und so ebenfalls
gewisse Ansprüche an die OpenGL-Performance stellt.

Das rechts abgebildete Zoomdino
zeigt schnell, ob das seltene Feature OpenGL-Overlay zur Verfügung
steht. Ein Drücken der rechten Maustaste bringt das Steuerungsmenü zum
Vorschein, wo die beiden Lichtquellen, die das Dinomodellchen
ausleutchen einzeln ein- und ausgeschaltet werden können.
Erscheint
hierunter eine "Help"-Zeile, so funktioniert auch OpenGL-Overlay und
der Dinosaurier lässt sich zoomen.
Objektive Werte zur OpenGL-Performance liefert das Tool glxgears, das
auf den meiseten Linux- und UNIX-Varianten mit OpenGL-Unterstützung
vorhanden ist:
glxgears
Vgl. auch die Seite zu OpenGL im 1. Teil dieser Einführung.
OpenGL-Features
Es empfiehlt sich, in einem Xterm glxgears -info
aufzurufen. Bevor das
Fenster aufgeht, spuckt glxgears Informationen über zur Verfügung
stehende GLX-Features aus, z.B.
GL_MAX_VIEWPORT_DIMS=4096/4096
GL_RENDERER
= MOBILITY RADEON X300 x86/SSE2
GL_VERSION
= 1.4 (1.5.4650 WinXP Release)
GL_VENDOR = ATI Technologies
Inc.
GL_EXTENSIONS = GL_ARB_depth_texture GL_ARB_multitexture
GL_ARB_point_parameters GL_ARB_shadow GL_ARB_shadow_ambient
GL_ARB_texture_border_clamp GL_ARB_texture_compression
GL_ARB_texture_cube_map GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
GL_ARB_transpose_matrix GL_ARB_window_pos GL_EXT_abgr
GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract
GL_EXT_draw_range_elements GL_EXT_multi_draw_arrays
GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal
GL_EXT_texture3D GL_EXT_texture_edge_clamp GL_EXT_texture_env_add
GL_EXT_texture_filter_anisotropic GL_EXT_texture_object
GL_EXT_vertex_array GL_IBM_texture_mirrored_repeat GL_SGI_color_matrix
GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp
GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SGIX_shadow_ambient
GL_SUN_multi_draw_arrays
OpenGL-Performance
Dies ist schon recht aufschlussreich. Man sieht, dass die
OpenGL-Features der Grafikkarte (ATI Mobility Radeon X300) genutzt
wird, die GLX-Version 1.4 bietet.
Daruafhin startet das Fenster mit den Zahnräder. Man sollte ein paar
Minuten warten, um Performance-Werte zu erhalten:
32507 frames in 24.6 seconds = 1319.669 FPS
32507 frames in 24.2 seconds = 1342.048 FPS
32507 frames in 23.9 seconds = 1357.560 FPS
32507 frames in 24.4 seconds = 1330.184 FPS
Der Mittelwert FPS-Werte (= Frames per Second) ergibt ein Orientierungsmaß für die
rudimentäre OpenGL-Performance.
XGLinfo
Detailliertere Auskunft über OpenGL-Features liefert auf Linux das
Kommando glxinfo (noch detailierter glxinfo
-v ), doch hier soll wieder von einem Exceed3D-Tool die
Rede sein.
XGLinfo ist
im Lieferumfang von Exceed3D enthalten und gibt Informationen über die
zur Verfügung stehenden
OpenGL-Features in die Lokale X-Konsole aus. Es empfiehlt sich,
während dessen ein anderes Exceed3D-Beispielprogramm laufen zu lassen,
da sich sonst Exceed - je nach Konfiguration - gleich nach der
Ausführung von XGLinfo (also nach Sekundenbruchteilen) beendet, und
damit
auch die Lokale X-Konsole verschwindet. Das Ergebnis sieht z.B.
folgendermaßen aus:
Nach einigen allgemeinen X11-Eigenschaften folgen GLX-spezifische
Angaben. Oben sieht man die GLX-Version, die hier mit 1.4 auf dem
neuesten Stand ist. Dann gibt XGLinfo für jeden Screen (normalerweise gibt
es nur den Screen 0) zur Verfügung stehende GLX-Extensions und
-Visuals aus. Der rot umrandete Bereich unten zeigt wiederum, dass die
OpenGL-Features der ATI-Grafikkarte zur Geltung kommen.
Des weiteren listet XGLinfo eine meist größere Anzahl von GLX-Visuals
aus. Das sind im wesentlichen Farbmodelle mit Pufferinformationen.
OpenGl-Applikationen können aus dieser Liste das passende Visual
auswählen.
Sowohl die Farbtiefe, mit der der X-Server läuft, als auch die
Fähigkeiten der Grafikkarte beeinflussen die Anzahl und Qualität der
GLX-Visuals.
Der gesamte Output von XGLinfo lässt sich mit der Lokalen X-Konsole in
einen Textdatei abspreichern. Mit Tools wie diff / windiff lassen
sich die Fähigkeiten verschiedener Grafikkarten anhand solcher
Textdateien gut vergleichen. Dies ist gerade zu Support-Zwecken sehr
nützlich.
Mit der entwprechenden Einstellung schreibt Exceed auch in die Datei
exceed.log detaillierte OpenGL-Informationen; wie und wo steht im
Kapitel Logging.
|