Report: DirectX, die Siebte

19.10.1999 von Arne Schaepers
In der neuesten Version von DirectX setzt Microsoft nicht nur auf, wie üblich, 'schneller und bunter', sondern auch auf dezentrale Intelligenz. Bis die Hardware mitspielt, bleibt das noch graue Theorie, danach wird es... Ganz richtig: Schneller und bunter als jemals zuvor.

Um eines gleich vorwegzunehmen: Versionsnummer-Junkies kommen diesmal nicht auf ihre Kosten. Microsoft gibt zwar an, dass DirectX 7 auch existierende Anwendungen "um 20 bis 30 Prozent beschleunigen" soll, nur war davon bei Tests mit den üblichen Benchmarks und Framecountern (3DMark 99 MAX, Quake 2, Unreal Tournament et cetera) nichts zu merken. Tatsächlich sind die Unterschiede bei Frame- und Füllraten der Versionen 6.1 und 7 derart gering, dass sie - zumindest bei den von uns verwendeten Tests - komplett im Rauschen untergehen. Dabei ist allerdings zu beachten, dass diese Tests notgedrungen mit Treibern für DirectX 6 stattfanden: Auf der Webseite von nVidia, 3dfx und S3 war auch am 18.10. nichts DirectX-7-Spezifisches zu holen. Der bei Nvidia herunterladbare "Detonator"-Treiber für den TNT2 ist gut drei Monate alt, die aktuellen Treiber für den Savage 4 stammen gar vom Mai dieses Jahres. Immerhin gibt es von nVidia schon Betaversionen der neuen Treiber, die auch die neuen Funktionen von DirectX 7 unterstützen. Die rühmliche Ausnahme von der Regel ist Matrox.

Neue Treiber?

Ob sich die Grafikkartenhersteller überhaupt noch die Mühe machen, für bereits auf dem Markt befindliche Chips neue Treiberversionen herauszubringen, ist fraglich, da sich die Erweiterungen von DirectX 7 im Grafikbereich in lediglich zwei Kategorien unterteilen lassen.

In die erste fallen neue beziehungsweise inzwischen zum Standard erhobene Effekte wie Bumpmaps (die Bestimmung von Höhenkonturen über Bitmaps), die nur mit Hardwareunterstützung sinnvoll einsetzbar sind. So hat einzig der G400 von Matrox in diesem Bereich Funktionen zu bieten. Daher ist auch Matrox der einzige Hersteller, der momentan für eine existierende Grafikkarte neue Treiber anbietet (Version 5.2 vom 24.9.99, Matrox).

Zur Demonstration, wie viel Arbeit der Grafikchip dem Prozessor hier abnimmt, wurde das nächste Bild der drehenden Erde nicht mit einer G400, sondern mit Microsofts Software-Referenztreiber erstellt. Obwohl es die angezeigte Framerate (1,83 fps) wohl vermuten ließe, entstand dieser Schnappschuss nicht auf einem Original IBM-PC mit 4,77 MHz und EGA-Grafikkarte, sondern auf einem Pentium II mit 350 MHz, in dem ein Riva TNT 2 seinen Dienst tut.

T & L-Setup

Die zweite Kategorie der Neuerungen von DirectX 7 betrifft das Abschieben von Geometrie- und Beleuchtungsberechnungen ("transformation & lighting") auf die Grafikhardware. Im Moment ist die Arbeitsteilung eine recht einseitige Sache: Objekte werden über Polygone (exakter: Dreiecke) definiert, bei Bewegungen, wie beispielsweise Drehungen, muss die CPU die Positionen dieser Eckpunkte entsprechend neu berechnen und braucht dazu eine Menge Trigonometrie. Richtig aufwändig wird es allerdings erst, wenn es um die unvermeidliche Beleuchtung geht. Auch wenn man sich hier mit einigen "billigen" Tricks wie Gouraud- anstelle von Phong-Shading behelfen kann, sind pro Eckpunkt und Beleuchtungsquelle minimal 1,3 Matrizenmultiplikationen für Normalvektoren fällig. Nachdem die CPU diese Berechnungen sämtlich im Alleingang erledigt hat, übermittelt sie die Ergebnisse, Eckpunkte und Normalen, an den Grafikchip, dessen wesentlicher Beitrag aus dem perspektivisch korrekten Zeichnen von Texturen besteht: der Pixelschaufelei. Da dieser Prozess einschliesslich der Übermittlung für jeden Frame neu ausgeführt werden muss, sind aktuelle Grafikkarten erst mit einem Pentium II ab 350 MHz einigermaßen ausgelastet - und ohne grundlegende Veränderungen des Prinzips würde für die nächste Generation selbst ein Pentium III oder Athlon zum Flaschenhals.

Die für das Gouraud-Shading notwendigen Berechnungen kann bei DirectX 7 die Hardware übernehmen. Phong-Shading ist nach wie vor außerhalb der Möglichkeiten: Glanzlichter ("specular highlights") laufen auch hier noch über Schummeleien wie zusätzliche Bitmaps mit Beleuchtungsintensitäten ("light maps").

Mehrarbeit für den Grafikchip

Was DirectX 7 vorhat, lässt sich schnell beschreiben: Die Grafikhardware bekommt die Eckpunkte von Objekten ein einziges Mal übergeben und kümmert sich im weiteren selbst um deren Umrechnung bei Bewegungen ("transformation") sowie die Ermittlung der Normalvektoren ("lighting"). Die CPU, die in gängigen 3D-Spielen bis zu 70 Prozent ihrer Kapazität auf diese beiden Operationen verwendet, kann sich um andere Dinge wie die Strategie von Computergegnern, die Physik der virtuellen Welt oder Netzwerktransfers kümmern. Und: Wer Szenen mit drei oder fünf Mal so vielen Polygonen wie gewohnt sehen will, braucht keine CPU im Gigahertz-Bereich, sondern eher einen Grafikchip mit drei oder fünf parallel arbeitenden Transformationseinheiten.

Die beiden einzigen, momentan real existierenden Grafikchips in erschwinglichen Preisregionen, die solche Berechnungen übernehmen können, sind nVidias GeForce256 und der Savage 2000 von S3. Der Aufwand ist gewaltig: Nach nVidias Angaben enthält der Chip doppelt so viele Transistor-Äquivalente wie ein Pentium III.

Das Ergebnis zeigt dies auch: Die Entwickler von id-Soft oder Acclaim gehen davon aus, dass sie in zukünftige Spiele ohne weiteres die fünffache Zahl an Polygonen hineinstecken können. Was man praktisch davon hat, verdeutlichen einige Beispielfotos von nVidias Website:

Wann umsteigen?

Klare Antwort: Ohne neue Hardware haben Sie von DirectX 7 weder Vor- noch Nachteile. Das gilt sowohl für den Grafikbereich als auch für andere Neuerungen: Die 3D-Soundengine von DirectX 7 soll wesentlich realistischere räumliche Klänge liefern und gleichzeitig die CPU weniger belasten - nur wird dafür nicht nur die passende Hardware, sondern mit Windows 98 SE oder Windows 2000 auch ein neues Betriebssystem vorausgesetzt. Der technische Hintergrund: Skalierbar ist die CPU-Belastung bei der Berechnung von 3D-Sounds nur, wenn die Soundkarte über Treiber gesteuert wird, die dem neuen "Windows Driver Model" entsprechen. Beim bis dato üblichen Verfahren - der Steuerung über virtuelle Gerätetreiber (VXDs)- lässt DirectX 7 ausschließlich die Techniken zu, die bereits aus der Version 6 bekannt sind.

Wann es die neue Hardware und die entsprechenden Anwendungen gibt, lässt sich bereits jetzt absehen.

Was den nVidia GeForce256 betrifft, sind die Termine weit gehend klar: Elsa will Anfang November die Karte Erazor X mit diesem Chip ausliefern, erste Muster von anderen Herstellern, unter anderem Creative Labs, haben bereits den Weg ins tecChannel-Labor gefunden. Der Savage 2000 soll erst im Dezember im Handel auftauchen, zuerst natürlich bei S3s neuer Tochter Diamond.

Software zu Weihnachten?

Bei der Verfügbarkeit von Spielen entsteht dagegen eine fast paradoxe Situation: DirectX 7 sorgt dafür, dass Entwickler die T&L-Funktionen, wie sie bereits der GeForce256 bietet, auch nutzen können. Als erstes profitiert davon jedoch die OpenGL-Fraktion. Der Grund ist technischer Natur.

Reinrassige DirectX-Programme setzen meist auf monolithische Grafik-Engines. Das sind Module, die Transformationen, Beleuchtung und Rendering nach Möglichkeit in einem Aufwasch erledigen und nun mit Verteilung der Aufgaben an Soft- und Hardware nicht mehr zu gebrauchen sind.

OpenGL dagegen ist eine weit gehend hardware-und plattformunabhängigige Schnittstelle. Hier sind Operationen wie Transformation, Beleuchtung und das eigentliche Rendering seit jeher voneinander getrennt. Wie weit diese Schritte von der Hardware übernommen werden, ist dort Sache der Laufzeitumgebung und hat nur wenig Einfluss auf die Programmierung von Anwendungen.

Dass nVidias Website bereits jetzt Dutzende von Ankündigungen mit klangvollen Namen - von id Software (Quake III Arena) über Psygnosis (Panzer Elite) bis Acclaim (Shadowman) auflistet, versteht sich von selbst - genauso wie die Tatsache, dass man sich bei den Erscheinungsterminen vollständig bedeckt hält. Meine Meinung: Die auf OpenGL aufbauenden Spiele haben durchaus eine Chance, noch dieses Jahr auf dem Gabentisch zu landen. Für echte DirectX-7-Spiele sind bis dahin bei den Herstellern hingegen Nachtschichten und Urlaubssperren angesagt.

Bei nVidia wird man diesem Treiben gelassen zusehen: Dort ist bereits Weihnachten, sobald der GeForce256 in Stückzahlen ausgeliefert wird. Und bei S3 sicher auch. (nie)