Registrieren Passwort vergessen?

Footprint Assembly

9. Nov 2007, 19:47

Footprint Assembly ist ein Algorithmus zum anisotropen Filtern von Texturen. Die Texturverzerrung kann dabei in jeder beliebigen Richtung berechnet werden. Außerdem lässt sich der Algorithmus gut mit Techniken wie MIP-Mapping, bilinearem oder trilinearem Filtern oder auch Summed Area Tables kombinieren.

[Bearbeiten] Footprint

Ein Footprint ist die Projektion eines Pixels in das Koordinatensystem der Textur. Es wird angenommen, dass die Textur eine flache Oberfläche bespannt (dies ist bei Dreiecken immer der Fall). Der Footprint ist dann ein konvexes Viereck. Je genauer der Farbwert des Footprints berechnet werden kann, desto besser wird das resultierende Bild. Um Rechenaufwand zu sparen, wird der Footprint beim 'Footprint Assembly' nur angenähert.

Konstruktion eines Footprints

Beim Footprint Assembly wird der Footprint vereinfachend als Parallelogramm angenommen. Hierzu wird der Pixelmittelpunkt in die Texturkoordinaten projiziert und gibt den Mittelpunkt des Parallelogramms an. Die Vektoren, die das Pixel entlang der beiden Hauptachsen aufspannen, werden ebenfalls in das Texturkoordinatensystem projiziert. Sie spannen nun das Parallelogramm auf.

Vielfach wird auch das Parallelogramm als Footprint bezeichnet.

[Bearbeiten] Algorithmus

Es wird das Parallelogramm berechnet, das den Footprint annähert. Der Mittelpunkt heiße p.

Bild:FootprintAssembly2.png

Der kürzere der beiden Kantenvektoren gibt die Kantenlänge von Quadraten an, aus denen der Footprint berechnet werden soll. Die Quadrate lassen sich mit isotropen Filtern berechnen (meist MIP-Mapping mit bilinearem Filtern). Der längere der beiden Vektoren gibt einen Pfad an, entlang dem die quadratischen Flächen aufsummiert werden sollen.

Bild:FootprintAssembly3.png

Die Anzahl N der Quadrate wird durch den Quotienten aus den Vektorlängen des längeren durch den kürzeren Vektor bestimmt und auf die nächste Zweierpotenz gerundet. Die Zweierpotenz ermöglicht ein leichteres dividieren der Summe mittels Rechts-Shifts. Dann wird ein Schrittvektor Δr konstruiert, der sich aus dem längeren Vektor ergibt, wenn man ihn mit \frac{1}{N} skaliert. Die Punkte pn an denen abgetastet werden soll, ergeben sich aus p_n = p + \frac{n}{2} \cdot \Delta r mit n \in \{\pm 1, \pm 3, ..., \pm (N-1)\}. An diesen Punkten als Mittelpunkt wird jeweils der Farbwert eines der Quadrate berechnet. Die Farbwerte werden summiert und durch die Anzahl N geteilt. Das Ergebnis ist die Annäherung des Footprint-Farbwertes und der Texturwert für das Pixel.

[Bearbeiten] Weblinks

Dieser Artikel ist eine Kopie aus der freien Enzyklopädie Wikipedia. Am Originalartikel kann jeder Korrekturen und Ergänzungen vornehmen. Zudem kann man frühere Versionen einsehen.