Zum 3DCenter Forum
Inhalt




Grafik-Filter: Bilinear bis Anisotrop im Detail

10. Dezember 2001 / von aths / Seite 3 von 9



  3D-Latein
  (MIP Mapping)

Man kann sich aushelfen, wenn jede Textur in unterschiedlichen Auflösungen vorliegt. Ob nun zwei, drei, oder mehr Stufen, entscheidet sich je nach Anwendung.

Es hat sich schnell durchgesetzt, dass jede Folge-Textur 1/4 des Platzes ihres Vorgängers einnimmt. Also, dass X- und Y-Auflösung je halbiert werden. Unter anderem aus diesem Grunde werden Texturen-Größen immer durch Zweier-Potenzen repräsentiert. Zweier-Potenzen lassen sich halbieren, ohne dass ein Rest zurück bleibt. Das Verfahren, abstandsabhängig unterschiedliche Auflösungen für die gleiche Textur zu nutzen, heißt MIP Mapping. MIP steht für multum in parvum. Das heißt etwa "Großes in Kleines" und spielt auf die verkleinerten Texturen an. Das vergrößert den Gesamt-Platzbedarf für Texturen um bis zu einem Drittel. MIP Mapping kam schon in Software-Engines zum Einsatz. Das MIP-Level zu bestimmen, also anhand der Entfernung vom Betrachter die Auflösungsstufe zu wählen, wurde dabei einmal pro Polygon gemacht. 3D-Hardware führt diese Berechnung natürlich pixelweise durch.

Es wird jeweils die Detail-Stufe, englisch Level of Detail, bestimmt. Dazu sagt man kurz LOD.

Dieser LOD kann dabei global verschoben werden, indem nach der Berechnung einfach noch das LOD Bias addiert wird. Ist dieser Bias kleiner als Null, wird eher ein geringes MIP-Level, also eine höher aufgelöste Textur verwendet. Je größer das LOD, desto höher das MIP-Level und so geringer aufgelöst die Textur. In der Umgangssprache sagt man oft nur LOD, obwohl das LOD-Bias gemeint ist.

Das LOD wird für jedes Pixel neu berechnet. Danach findet auf Wunsch noch eine Modifizierung statt, die man in diesem Dialogfeld einstellen kann.

Die Texturen für die MIP-Stufen können entweder vom Programmierer geladen werden, oder man überlässt das Erzeugen von verkleinerten Texturen gleich der Hardware. Hier geht man oft sehr einfach vor: Pro 2x2-Texel-Block wird die Farbe einfach gemischt. Doch gerade für voraus berechnete MIP-Texturen es gibt auch bessere Verfahren: So kann man pro neuen Texel einen größeren 4x4-Block aus der Vorgänger-Textur auslesen, deren einzelne Texel mit bestimmten Gewichten in den neuen Texel einfließen.

Noch besser ist es, eine Fourier-Analyse vorzunehmen. Dazu wird jede Farb-Ebene (Rot, Grün, Blau) der Textur als zweidimensionale Funktion gesehen. Diese Funktion wird mit einem Verfahren namens Fourier-Analyse in seine Sinuswellen-Bestandteile zerlegt. Man erhält ein zweidimensionales Frequenz-Spektrum. Nun werden die Frequenzen, die in der neuen Verkleinerungsstufe sowieso nicht sichtbar sind, gedämpft. Aus dem bearbeitetem Spektrum wird dann mittels Fourier-Synthese die MIP-Textur zusammen gesetzt. Dank diesem Aufwand werden die Texturen trotz Verkleinerung nicht so schnell unscharf, was sich positiv auf die allgemeine Bildqualität auswirkt.

Eine Beispieltextur und ihr Aussehen bei 50% Verkleinerung ohne (links oben) und mit 2x2-MIP-Mapping (rechts unten).

Einschränkend ist zu sagen, dass Lightmaps in aller Regel ohne MIP-Mapping auskommen müssen. Lightmaps sind selbst Texturen und werden multiplikativ auf andere Texturen aufgetragen, um vorgegebene Bereiche mehr oder weniger sanft abzudunkeln. Da die Ausgangstexturen für 100% Helligkeit gemacht werden, kann somit Lichteinfall simuliert werden. Vertex Lighting interpoliert lediglich die Helligkeitswerte der Eckpunkte über das gesamte Polygon, was bei heutigen Dreiecks-Größen viel zu ungenau für eine realistische Beleuchtung ist. Doch egal ob vorberechnete Lightmaps oder dynamisch erzeugte zum Einsatz kommen: Sie sind der Performance wegen viel geringer aufgelöst als die Textur, die sie bedecken. Daher würde MIP-Mapping bei diesen speziellen Texturen kaum optische Vorteile bringen.

Es gibt beim MIP-Mapping keine verbindlichen Regeln, wie groß der Bereich sein soll, bevor zur ersten verkleinerten Textur gegriffen wird. Ebensowenig, wann die nächsten Stufe zum Zuge kommen soll. Die Einstellung wird in der Regel so getroffen, dass man ein guten Kompromiss zwischen Textur-Schärfe und reduziertem Flimmern findet.

Das ganze soll nun noch einmal veranschaulicht werden:

Vergleich von Point Sampling ohne und mit MIP-Mapping. Einige Texturen erscheinen rechts zwar unschärfer. Allerdings lassen die scharfen Texturen im linken Bild kein zusammen hängendes Muster mehr erkennen. In Bewegung flimmern sie deshalb sehr stark. Das ist im Bild rechts anders.

Vorteile: MIP Mapping simuliert das natürliche Verhalten des Auges, dass der Detailgrad bei entfernten Objekten abnimmt.

Probleme: Der Übergang zwischen den MIP-Stufen ist abrupt. Diesen Artefakt nennt man MIP-Banding. Schlimmer: Bei Vergrößerung erscheinen weiterhin scharf abgegrenzte Farbblöcke. Das ist zunächst zu bekämpfen.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back Weiter / Next

Shortcuts
nach oben