Vorherige Seite

Tech Talk

Grafikbeschleunigung mit DirectX 6

Neben ein neuen Features wie Stencil Buffers, Bump Mapping oder Texturen-Kompression bringt DirectX 6 auch eine Performance-Steigerung für AMD K6-2-CPUs.

Resourcen-verschlingende Grafikprogramme und 3D-Spiele zeigten schnell die Grenzen der mager ausgestatteten GDI-Schnittstelle (Graphics Device Interface) für Windows auf. Das Hauptproblem liegt darin, daß alle Zeichenroutinen im Arbeitsspeicher laufen und sehr prozessor-intensiv sind. Abhilfe schuf die Einführung von DirectX, daß heute in der Version 6 vorliegt. DirectDraw und Direct3D heißen die Schnittstellen, die Microsoft für den 2D- und 3D-Grafikbereich entwickelt hat. DirectDraw ermöglicht es, daß Zeichenroutinen jetzt direkt in den Videospeicher der Grafikkarte geschrieben werden können. Mit Direct3D kann jetzt die CPU des Rechners entlastet werden, da der überwiegende Teil der 3D-Operationen, wie zum Beispiel das Zeichnen des Drahtgittermodels und die Erzeugung von Oberfächen (Texturen) direkt vom Grafikchip übernommen werden.

Durchgesetzt hatte sich DirectX erst ab der Version 5, da es eine für Spieleentwickler ausreichende Funktionsvielfalt und AGP-Unterstützung besitzt.

Die D3D-Geometrie-Pipeline

Jede Szene in einer 3D-Applikation setzt eine genaue geometrische Beschreibung der verwendeten Objekte voraus. Danach müssen die beschriebenen Körper in vier Schritten transformiert werden:

In der ersten Stufe, der World Transformation, werden alle Objekte in einem dreidimensionalen Welt-Koordinatensystem angeordnet. Als zweiter Schritt wird der Blickwinkel festgelegt. Die absoluten Weltkoordinaten müssen nun relativ zur »Beobachtungskamera« umgerechnet werden (View Transformation). Während des dritten Schrittes, der Projection Transformation, wird aus der Entfernung der »Beobachtungskamera« und dem relativen Abstand der Objekte zueinander die Tiefeninformation hinzugefügt. Körper, die im Hintergrund liegen, müssen kleiner als vordergründige Objekte erscheinen. Jetzt ist die Projektion auf eine zweidimensionale Ebene erfolgt. Da bis zu diesem Zeitpunkt noch mit einem Drahtgittermodell gearbeitet wurde, ist es erforderlich, die Seiten der Dreiecke im Drahtgittermodell zu entfernen, die durch vordergründige Objekte verdeckt werden und damit nicht mehr sichtbar sind. Dieser Vorgang wird als Clipping bezeichnet.

Nach abgeschlossener Geometrie-Transformation wird das Drahtgittermodell der Rendering-Pipeline übergeben, die Oberflächen (Texturen) erzeugt sowie Licht- und Nebeleffekte hinzufügt.

Die Praxis

Soviel zur Theorie. In der Praxis sieht es bei vielen Spielen etwas anders aus. So umgehen beispielsweise die Spielehersteller von Forsaken, Incoming und Turok die Microsoft-Geometrie-Pipeline gänzlich und nutzen nur die Rendering-Pipeline. Aus programmiertechnischer Sicht machte das auch Sinn. Bis zur DirectX-Version 5 war die Geometrie-Pipeline ineffektiv und nur für Intel-Prozessoren optimiert. Die Strategie, eine eigene Pipeline zu entwickeln, brachte fast immer Performance-Vorteile und wurde deshalb auch von den meisten Spieleherstellern verfolgt. Erst ab DirectX 6 lohnt sich eine solche Vorgehensweise nicht mehr. Wie der ZD 3D Winbench beweist, bringt die neue Geometrie-Pipeline Leistungssteigungen bis zu 20 Prozent und funktioniert auch mit den AMD-K6-2-Prozessoren tadellos. Viele Spielehersteller haben sich mittlerweile dazu entschlossen, auf Geometrie-Eigenentwicklungen zu verzichten. Wer derzeit bei oben genannten Spielen Performancesteigerungen durch ein DirectX-6-Update erwartet, wird eher enttäuscht, es bringt nämlich kaum eine Verbesserung. Erst neue Spieletitel werden DirectX 6 komplett nutzen. Dadurch ergibt sich noch ein weiterer Vorteil: Es entfällt die Entwicklung von Patches für bestimmte Grafikchips oder den AMD K6-2-Prozessor.

Testurteil
Was uns gefällt Was uns nicht gefällt
Von Peter Meier, aktualisiert am: 2009-12-14T12:24:22+01:00
Vorherige Seite

Kommentare

1 Meinungen im Forum Kommentar hinzufügen
smarty1971

Ein bissel kurz. Da hättet Ihr wirklich mehr in die Tiefe gehen können.

1 Meinungen im Forum Kommentar hinzufügen

Anzeige