|
R300 3D-Architektur
im Detail
TruForm II
DirectX
8.0 eröffnete mit N-Patches eine neue Art der 3D
Surface, indem Gegenstände
die aus wenigen Dreiecken bestehen durch das Erhöhen
selbiger gerundet werden und sehen somit auch natürlicher
aus.
Erst die Grafikchips mit der Truform Technologie ermöglichten
dieses. Mehr zu den einzelnen Abläufen, wie etwa Teslation
erfahren Sie in unserem Artikel über die 3D-Architektur
des R200.
DirectX 9.0 erweitert
das Konzept der N-Patches um das sogenannte Displacement
Mapping.
Displacement Mapping
Die Displacement Mapping Technologie, ermöglicht es mit
Hilfe von Texturen ein 3D Drahtgittermodell beliebig zu modellieren
und so realistische Landschaften/Modelle zu erstellen. Somit
wird fast das komplette Drahtgittermodel
bei DX 9 Grafikkarten im Grafikprozessor berechnet. Bei älteren
Grafikchips musste meist das Drahtgittermodel komplett von
der CPU berechnet werden, was durch die vielen Geometriedaten
auch den AGP Bus belastete.
Zu erst wird eine Triangle Tesselation durch geführt,
dadurch wird die Anzahl der Dreiecke im Drahtgitter erhöht.
Danach werden einige N-Patches Algorithmen benötigt,
welche kombiniert mit den Displacement Operationen das endgültige
Landschaft-Gittermodel formen. Danach kann das fertige Gittermodel
mit beliebigen Texturen belegt werden. Ohne die Hardwareunterstützung
von N-Patch /Triangle Tesselation
ist kein Displacement Mapping möglich.
Ein weiter Vorteil von Displacement Mapping ist die Möglichkeit,
den Betrachtungspunkt zu berücksichtigen. Die nähere
Umgebung bietet eine hohe Detailtreue, welche nach hinten
(Horizont) langsam abnimmt. Das auf den Betrachter ausgerichtete
Bild reduziert noch einmal etwas den Rechenaufwand.
Bei der Generierung des Betrachtungspunktes werden sowohl
das Draht-Gittermodel als auch die Texturen berücksichtigt.
Zudem erlaubt Displacement Mapping die gleichzeitige Verwendung
der herkömmlichen Bump-Mapping Technologien (EMBM oder
DOT 3) und vermittelt nicht nur die Illusion der Tiefe wie
Bump-Mapping, sondern erzeugt eine veränderte Geometrie.
Nachtrag
DirectX 9 unterstützt zwei Displacement Verfahren. Der Matrox Parhelia unterstützt die für Landschaften sinnvollere "Sampled" Variante. Die Radeon 9500/9700 unterstütz in Hardware das für Objekte besser geeignete "Preimaged" Variante. Über den VertexShader lässt sich die "Sampled" Variante emulieren. Der GeForeceFX besitzt überhaupt keine Hardware Displacement Einheit und muss beides emulieren. Somit ist die Verbreitung der sehr interessanten Technologie etwas schwierig. Preimaged hat keine weite Verbreitung und Sampled wird von den meisten Chips nur emuliert, was bei massivem Einsatz wohl nichts anderes als Performance-Probleme ergeben wird.
|