Matrox Parhelia-512 – High Fidelity Graphics - Seite 11

Anzeige

Features: Hardware Displacement Mapping

Eines der Features, mit denen man von Matrox schon seit längerem rechnet, ist das „Hardware Displacement Mapping“ (HDM), da Matrox-Mitarbeiter über dieses Thema bereits auf einigen Messen referiert haben. Nun ist es amtlich, der Parhelia-512 unterstützt also HDM. Aber was steckt dahinter?

Ähnlich wie das mit dem Matrox G400 Grafikchip eingeführte Environment Mapped Bump Mapping (EMBM) ist Hardware Displacement Mapping eine Technologie, um Oberflächen und Strukturen realistischer aussehen zu lassen. Im groben Überblick sieht der Vorgang der Darstellung mit HDM wie folgt aus:


Anklicken für eine vergrößerte und genauere Darstellung!
Hardware Displacement Mapping

Jede 3D-Oberfläche setzt sich zunächst aus einem Gitternetz von Dreiecken zusammen, das über den AGP-Bus an den Grafikchip geschickt wird. Die GPU zerlegt dieses in ein deutlich feinmaschigeres Gitternetz. Kombiniert man dieses nun mit einer sogenannten „Displacement Map“ (Verschiebungskarte), ergibt sich ein strukturiertes Terrain. Legt man danach die üblichen Texturen über die Pixel, wird das farbige Endergebnis erzeugt.
Eine Displacement Map enthält also – vereinfacht ausgedrückt – die Höheninformationen für einen bestimmten Bereich, wobei diese in einer einfachen und kompakten Form in der Map gespeichert sind. Legt man die Displacement Map über das Gitternetz, werden die Dreiecke den Höheninfos entsprechend umgeformt.
Allerdings ist es damit nicht getan. Hardware Displacement Mapping besteht darüberhinaus aus „Depth-Adaptive Tesselation“ und „Vertex Texturing“.

Depth-Adaptive Tesselation

Unter Tesselation versteht man das Aufteilen eines grobmaschigen Gitternetzes in ein deutlich feineres. Letzteres sieht gerade bei Unebenheiten oder Bögen natürlich deutlich glatter aus, weil es sich einfach aus mehr Elementen zusammensetzt.


Tesselation
Tesselation: Gitternetz mit a) wenig und b) deutlich mehr Dreiecken

Ein solches Verfahren (N-Patch) liegt auch TruForm von ATI zugrunde. In dem entsprechenden Report sind wir bereits auf die grundlegenden Elemente dieser Technik eingegangen, deshalb an dieser Stelle nur der Hinweis darauf.

Die Zerlegung einer Basis-Szene in deutlich mehr Dreiecke ist aber nicht an allen Stellen notwendig. An Punkten, die weit entfernt vom Betrachter bzw. der virtuellen Kamera liegen, ist ein höherer Detailgrad nicht wünschenswert, da dieser eh nicht sichtbar wäre. Aus diesem Grund wird beim Hardware Displacement Mapping die sogenannte „Depth-Adaptive Tesselation“ verwendet, also eine entfernungsabhängige Tesselation. Man spricht auch von der „LOD-based Tesselation“, analog zum sogenannten „Level of Detail“, der mit wachsender Entfernung vom Ausgangspunkt immer geringer wird.


Szene mit Depth-Adaptive Tesselation (17.794 Dreiecke)
Szene mit Depth-Adaptive Tesselation

Szene ohne Depth-Adaptive Tesselation (165.150 Dreiecke)
Szene ohne Depth-Adaptive Tesselation


Obwohl ohne Depth-Adaptive Tesselation deutlich mehr Dreiecke und damit grundsätzlich ein höherer Detailgrad erzeugt wurde, ist der Unterschied im Endergebnis nicht erkennbar, da die eingesparte Detaillierung zu weit vom Betrachter entfernt liegt, als dass sie sichtbar wäre. Dagegen wurde durch die entfernungsabhängige Tesselation ein hohes Maß an Grafikleistung eingespart, weil weniger Dreiecke transformiert, beleuchtet, texturiert etc. werden müssen.

Depth-Adaptive Tesselation ist nicht nur für statische Szenarien, sondern auch für bewegliche Objekte einsetzbar. Bewegt sich ein Objekt im virtuellen Raum auf den Vordergrund (und damit den Betrachter) zu, so wird der LOD und damit auch der Grad der Tesselation (Anzahl der Dreiecke) erhöht. Dieser Grad ist darüberhinaus nicht ganzzahlig, so dass ein fließender Übergang gewährleistet sein soll. Plötzlich wie aus dem Nichts auftauchende Personen und ruckweise größer werdende Objekte sollen so vermieden werden.

Vertex Texturing

Während N-Patches wie bei TruForm von ATI die Oberfläche eines Objektes nicht variabel verändern, sondern lediglich abrunden können, ist Hardware Displacement Mapping aufgrund des Vertex Texturing dazu durchaus in der Lage.


Vertex Texturing
Vertex Texturing (rechts unten) generiert flexible Oberflächen

Frank Schräer

Herausgeber, Chefredakteur und Webmaster

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.