DirectX9 Preview
25. März 2002 / von aths & Leonidas / Seite 1 von 1
Microsofts DirectX umfasst ein Sammelsurium von Routinen, um unter Windows schnell und standardisiert auf die Hardware zugreifen zu können. In Dingen Grafik ging es seinerzeit mit "WinG" los. Dies war eine Erweiterung für Windows 3.1, um 2D-Ausgaben am langsamen Windows-GUI vorbeizuschleusen. Unter Windows 95 hieß das dann in einer erweiterten Version DirectDraw, welches später dann mit anderen Dingen zu DirectX zusammengefasst wurde. Uns interessiert hiervon natürlich insbesondere die Schnittstelle für die 3D-Hardwarebeschleunigung, sprich Direct3D.
Das hervorstechendste Merkmal von DirectX7 war bekanntlich die Unterstützung von Hardware T&L Beschleunigung (welches es für OpenGL allerdings schon länger gab). Das entsprechende DirectX-Verfahren lizensierte Microsoft seinerzeit von nVidia, welche bekanntermaßen anno 1999 mit dem GeForce-Chip den ersten T&L-Beschleuniger auf den Consumer-Markt brachten. Für DirectX8 und dessen vorwiegende Ausrichtung auf programmierbare Vertex und Pixel Shader engagierten sich neben nVidia vor allem noch 3dfx - und Matrox. Wir wollen uns nun nachfolgend einige wichtige Neuerungen des kommenden DirectX9 ansehen.
Matrox scheint hierbei eine Vorreiterrolle bei DirectX9 zu spielen. Seit Monaten sprecht man seitens Matrox über Displacement Mapping: Diese Technologie kann man sich erst einmal als Weiterentwicklung von Bump Mapping vorstellen. Während Bump Mapping rauhe Oberflächen allerdings nur simuliert - die Polygone bleiben glatt - werden diese durch Displacement Mapping tatsächlich "eingebeult". Ein großer daraus resultierender Vorteil ist, dass sich Displacement Mapping für großflächige Geometrie anwenden lässt - bis hin zu ganzen Landschaften, während Bump Mapping vor allem für kleine Details geeignet ist.
Nun lassen sich gebogene Oberflächen auch mit Curved Surfaces erreichen. Displacement Mapping erlaubt allerdings auf einfacherem Wege mehr Details darzustellen und das Verfahren arbeitet ohne nicht zusammenpassende Anschluss-Stellen (welche im übrigen mit ein Grund dafür waren, weshalb John Carmack Curved Surfaces für "überschätzt" erklärte). Weitere Vorteile von Displacement Mapping sind die hohen Kompressionsraten (die Geometrie kann dadurch ungefähr bis zu 40:1 komprimiert werden!), womit der AGP-Bus entlastet wird. Außerdem ist ein Level-of-Detail-System automatisch mit integriert.
Es ist offensichtlich, dass herkömmliche 3D-Hardware natürlich nicht fähig zu Displacement Mapping sein kann. Denn um Displacement Mapping sinnvoll einzusetzen, muss die GPU adaptive Tesselation (Zerlegung der Objektdaten in Polygone) unterstützen und nicht nur einfache Transformation. Bisherige GPUs müssen alle Eckpunkte verarbeiten und können sie weder weglassen, noch sich ihre eigenen erzeugen. Wenn eine Grafikkarte nun die Tesselation, also die Zerlegung in Dreiecke selbst übernimmt, entlastet das nicht nur die CPU und den AGP-Bus, sondern überwindet auch diese bisherige Einschränkung. Displacement Maps lassen sich intern wie Texturen behandeln - inklusive MIP-Mapping.
In Dingen zukünftige Shader bei DirectX9 scheint dagegen ATi derzeit den Ton anzugeben. Sowohl Vertex als auch Pixel Shader werden sich immer mehr in Richtung "echte" Programmierbarkeit entwickeln - Verzweigungen und Schleifen werden möglich. Die Pixel Shader Version 2.0, welche mit DirectX9 eingeführt werden wird, richtet sich offenbar eher an ATi´s 1.4er Pixel Shader Realisierung denn an nVidia´s 1.1er bis 1.3er Pixel Shader Realisierung aus (3dfx´ letzter und unveröffentlichter Chip "Rampage" unterstützte Version 1.0).
Besonders interessant sind hier die Datenformate. Mit DirectX9 wird die Möglichkeit des 64-Bit-Renderings Einzug halten - wobei außerdem nicht nur Fixkomma-, sondern auch Fließkomma-Darstellung möglich ist. Der Vorteil hiervon ist, dass der relative Fehler bei allen Pixel-Operationen gleichmäßiger auf alle Helligkeiten verteilt wird. Während bei DirectX8 die 12 Bit Genauigkeit pro Farbkanal nur eine Empfehlung sind, verlangt DirectX9 immerhin eine mindeste interne Genauigkeit von 10 Bit pro Farbkanal.
Um noch einmal kurz zusammenzufassen, was die wichtigsten Bausteine von DirectX9 sein werden:
- Vertex Shader 2.0
- Pixel Shader 2.0
- adaptive Tesselation
- Displacement Mapping
- mindestens 10 Bit interne Genauigkeit pro Farbkanal
Inwiefern diese Features allerdings baldmöglichst von den Spiele-Programmierern genutzt werden, ist natürlich jetzt noch höchst ungewiss. Displacement Mapping ist dieses Feature, welche für die Spieleprogrammierer wohl am lukrativsten sein dürfte, läßt sich doch eine erstklassige Grafik mit recht wenig Aufwand erreichen. Auch das Matrox sein Displacement Mapping schon seit längerem den Spieleprogrammierern schmackhaft zu machen versucht, dürfte sich bei dessem baldmöglichsten Einsatz als nutzvoll erweisen.
Die Kehrseite der Medaille ist natürlich immer wieder die ausreichende Verfügbarkeit von DirectX9 Hardware - und ohne diese läuft mit der Zuwendung der Spieleprogrammierer zu neuen Features erfahrungsgemäß wenig. Das alte "Henne-Ei-Problem" wird die DirectX9 Features & Hardware unserer Meinung nach in besonders hartem Maße treffen: Denn die Spieleprogrammierer wenden sich derzeit gerade erst einmal DirectX8 und dessen Ausnutzung zu. DirectX9 ist aus dieser Sicht zwar eine gute Fortführung und Erweiterung des bestehenden, im Gegensatz zu DirectX8 aber keine Notwendigkeit.
Insofern denken wir derzeit, daß es DirectX9 noch schwieriger als DirectX8 haben wird, sich bei den Spieleprogrammierern durchzusetzen. Wenn wir bei DirectX8 ungefähr 1,5 Jahre ansetzen müssen, ehe es entsprechende Spiele in Masse gibt, wird dies bei DirectX9-Spielen demzufolge auf keinen Fall kürzer, sondern vielmehr eher länger dauern. Ergo: Wenn DirectX9 diesen Sommer / Herbst erscheint, wird es mit DirectX9-Spielen in Masse wohl kaum etwas vor dem Jahre 2004.
Zum Thema der DirectX9 Hardware ansich: Es ist unverkennbar, dass sich für DirectX9 vor allem ATi und Matrox stark engagieren. Das lässt die Vermutung zu, dass beide mit entsprechender Hardware rechtzeitig und vor allem als erste auf dem Markt kommen wollen. Matrox scheint hierbei an alte Zeiten anknüpfen zu wollen und möchte wohl wieder einmal eine Vorreiter-Rolle übernehmen, allerdings sind die genaueren Plänen von Matrox derzeit noch im Dunklen.
Bei ATi ist dagegen bekannt, daß deren DirectX9-Chip R300-Chip in diesem Herbst (manche reden gar von diesem Sommer) antreten wird, erste Daten gibt es in einer älteren ATi-Roadmap. Zu nVidia´s DirectX9-Chip NV30 liegen dagegen wie bei Matrox bisher kaum Daten vor, nur beim Release ist man sich (bisher) aufgrund des üblichen nVidia-Produktzyklus recht sicher: Herbst diesen Jahres.
Ob es dazu kommen wird, wer den ersten DirectX9-Chip auf den Markt bringen wird und wann DirectX9 selber nun antreten wird - wir werden es im Laufe diesen Jahres erleben dürfen :-). Zumindestens erscheint es derzeit so, als daß mangels DirectX9-Games niemand seine DirectX8-Hardware beim Erscheinen der ersten DirectX9-Chips wird einmotten müssen.
Download-Links:
Microsoft DirectX9 Präsentation + Matrox Displacement Mapping Präsentation (beide PPT)
Nachtrag vom 4. April 2002:
Weil es momentan ab und zu einmal falsch genannt wird, wollen wir hiermit noch einmal klarstellen: DirectX9 ermöglicht nicht bis zu 40 Bit Rendering, sondern erfordert mindestens 40 Bit Rendering, um das Siegel "DirectX9 Hardware" zu erlangen. Das von John Carmack (id Software) geforderte 64 Bit Rendering ist damit definitiv noch nicht vom Tisch - möglicherweise wird DirectX9 dieses ja unterstützen oder sogar noch weitergehen als 64 Bit.
Denn im Gegensatz zur unteren Grenze (40 Bit) ist die obere Grenze, welche DirectX9 unterstützen wird, derzeit noch nicht bekannt bzw. eventuell sogar noch nicht festgelegt. Und bei Microsoft scheint man sich derzeit sowieso recht viel Zeit mit DirectX9 zu lassen (bisher gibt es auch für die ausgewählten Tester noch keine Beta-Version) - neben der bisher "gültigen" Spekulation von Sommer / Herbst 2002 als Releasetermin von DirectX9 gibt es derzeit auch Aussagen, welche DirectX9 erst am Jahresanfang 2003 sehen.