Anisotrope Filterung - Anisotropic filtering

Eine Illustration von Texturfiltermethoden, die eine Textur mit trilinearem Mipmapping (links) und anisotroper Texturfilterung zeigt.

In der 3D-Computergrafik ist die anisotrope Filterung (abgekürzt AF ) eine Methode zur Verbesserung der Bildqualität von Texturen auf Oberflächen von Computergrafiken, die sich in schrägen Blickwinkeln in Bezug auf die Kamera befinden, auf die die Textur (nicht das Polygon oder andere Grundelemente) auf dem es wiedergegeben wird) scheint nicht orthogonal zu sein (daher der Ursprung des Wortes: "an" für nicht , "iso" für dasselbe und "tropisch" von Tropismus , bezogen auf die Richtung; anisotrope Filterung filtert nicht dasselbe in jede Richtung).

Wie die bilineare und trilineare Filterung eliminiert die anisotrope Filterung Aliasing- Effekte, verbessert jedoch diese anderen Techniken, indem sie Unschärfe reduziert und Details bei extremen Betrachtungswinkeln bewahrt.

Anisotrope Filterung ist relativ intensiv (hauptsächlich Speicherbandbreite und zu einem gewissen Grad rechnerisch , obwohl die Standardregeln für Raum-Zeit-Kompromisse gelten) und wurde erst in den späten 1990er Jahren zu einem Standardmerkmal von Grafikkarten auf Verbraucherebene . Anisotrope Filterung ist heute in moderner Grafikhardware (und Videotreibersoftware) üblich und wird entweder von Benutzern über Treibereinstellungen oder von Grafikanwendungen und Videospielen über Programmierschnittstellen aktiviert.

Eine Verbesserung des isotropen MIP-Mappings

Ein Beispiel für eine anisotrope Mipmap-Bildspeicherung: Das Hauptbild oben links wird von gefilterten, linear transformierten Kopien in reduzierter Größe begleitet.
Isotrope Mipmap des gleichen Bildes.

Von diesem Punkt an wird davon ausgegangen, dass der Leser mit MIP-Mapping vertraut ist .

Wenn wir einen näherungsweise anisotropen Algorithmus, das RIP-Mapping, als Erweiterung des MIP-Mappings untersuchen würden, können wir verstehen, wie die anisotrope Filterung so viel Textur-Mapping-Qualität gewinnt. Wenn wir eine horizontale Ebene, die schräg zur Kamera steht, texturieren müssen, würde uns die herkömmliche MIP-Kartenverkleinerung aufgrund der Reduzierung der Bildfrequenz in der vertikalen Achse eine unzureichende horizontale Auflösung liefern. Dies liegt daran, dass beim MIP-Mapping jede MIP-Ebene isotrop ist, also wird eine 256 × 256-Textur auf ein 128 × 128-Bild verkleinert, dann ein 64 × 64-Bild und so weiter, sodass sich die Auflösung auf jeder Achse gleichzeitig halbiert, also eine MIP-Map-Textur Bei der Sondierung eines Bildes wird immer ein Bild mit gleicher Frequenz auf jeder Achse abgetastet. Somit werden beim Abtasten, um Aliasing auf einer Hochfrequenzachse zu vermeiden, die anderen Texturachsen in ähnlicher Weise herunterabgetastet und daher möglicherweise unscharf.

Bei der anisotropen MIP-Map-Filterung werden Bilder zusätzlich zum Downsampling auf 128 × 128 auch auf 256 × 128 und 32 × 128 usw. abgetastet. Diese anisotrop reduzierten Bilder können sondiert werden, wenn die Textur-Mapping-Bildfrequenz für jede Texturachse unterschiedlich ist. Daher muss eine Achse aufgrund der Rasterfrequenz einer anderen Achse nicht verwischt werden, und Aliasing wird dennoch vermieden. Im Gegensatz zu einer allgemeineren anisotropen Filterung ist das zur Veranschaulichung beschriebene MIP-Mapping dadurch eingeschränkt, dass nur anisotrope Sonden unterstützt werden, die im Texturraum achsenausgerichtet sind , sodass die diagonale Anisotropie immer noch ein Problem darstellt, auch wenn reale Anwendungsfälle von anisotroper Textur üblicherweise solche Screenspace-Mappings aufweisen .

Obwohl Implementierungen ihre Methoden frei variieren können, bedeuten MIP-Mapping und die zugehörigen Achsenausrichtungsbeschränkungen, dass es für echtes anisotropes Filtern nicht optimal ist und hier nur zu Veranschaulichungszwecken verwendet wird. Eine vollständig anisotrope Implementierung wird unten beschrieben.

Laienhaft ausgedrückt, behält die anisotrope Filterung die "Schärfe" einer Textur bei, die normalerweise durch die Versuche der MIP-Map-Textur verloren geht, Aliasing zu vermeiden. Anisotroper Filterung kann daher gesagt werden , knackige bei allen Betrachtungsorientierungen Textur Detail zu halten , während schnelle Anti-Aliasing bietet Texturfilterung .

Grad der unterstützten Anisotropie

Während des Renderns können verschiedene Grade oder Verhältnisse der anisotropen Filterung angewendet werden, und aktuelle Hardware-Rendering-Implementierungen setzen eine Obergrenze für dieses Verhältnis. Dieser Grad bezieht sich auf das maximale Anisotropieverhältnis, das durch den Filterprozess unterstützt wird. Beispielsweise werden durch anisotrope Filterung im Verhältnis 4:1 (ausgesprochen „4-zu-1“) weiterhin schrägere Texturen jenseits des um 2:1 geschärften Bereichs geschärft.

In der Praxis bedeutet dies, dass in stark schrägen Texturierungssituationen ein 4:1-Filter doppelt so scharf ist wie ein 2:1-Filter (er zeigt Frequenzen an, die doppelt so hoch sind wie die des 2:1-Filters). Für die meisten Szenen ist jedoch kein 4:1-Filter erforderlich; nur die schrägeren und normalerweise weiter entfernten Pixel erfordern die schärfere Filterung. Dies bedeutet, dass mit zunehmender Verdoppelung des Grades der anisotropen Filterung die Erträge in Bezug auf die sichtbare Qualität abnehmen, wobei immer weniger gerenderte Pixel betroffen sind und die Ergebnisse für den Betrachter weniger offensichtlich werden.

Wenn man die gerenderten Ergebnisse einer 8:1 anisotrop gefilterten Szene mit einer 16:1 gefilterten Szene vergleicht, zeigen nur relativ wenige stark schräge Pixel, meist auf weiter entfernter Geometrie, sichtbar schärfere Texturen in der Szene mit dem höheren Grad an Anisotropie Filterung, und die Frequenzinformationen dieser wenigen 16:1-gefilterten Pixel sind nur doppelt so hoch wie die des 8:1-Filters. Die Leistungseinbuße verringert sich auch, weil weniger Pixel die Datenabrufe mit größerer Anisotropie erfordern.

Letztendlich ist es die zusätzliche Hardwarekomplexität gegenüber diesen abnehmenden Renditen, die dazu führt, dass eine obere Grenze für die anisotrope Qualität in einem Hardwaredesign festgelegt wird. Anwendungen und Benutzer können diesen Kompromiss dann durch Treiber- und Softwareeinstellungen bis zu diesem Schwellenwert anpassen.

Implementierung

Echte anisotrope Filterung prüft die Textur im laufenden Betrieb anisotrop auf Pixelbasis auf jede beliebige Ausrichtung der Anisotropie.

Bei Grafikhardware werden typischerweise, wenn die Textur anisotrop abgetastet wird, mehrere Sonden ( Texel- Abtastungen) der Textur um den Mittelpunkt herum genommen, jedoch auf ein Mustermuster, das entsprechend der projizierten Form der Textur an diesem Pixel abgebildet wird, obwohl frühere Softwaremethoden haben summierte Flächentabellen verwendet.

Jede anisotrope Filtersonde ist oft selbst eine gefilterte MIP-Map-Probe, die dem Prozess mehr Sampling hinzufügt. Sechzehn trilineare anisotrope Samples können 128 Samples von der gespeicherten Textur erfordern, da die trilineare MIP-Map-Filterung vier Samples mal zwei MIP-Levels nehmen muss und dann die anisotrope Abtastung (bei 16-Tap) sechzehn dieser trilinear gefilterten Sonden nehmen muss.

Dieser Grad an Filterkomplexität ist jedoch nicht immer erforderlich. Es gibt allgemein verfügbare Methoden, um den Arbeitsaufwand der Video-Rendering-Hardware zu reduzieren.

Die am häufigsten auf Grafikhardware implementierte anisotrope Filtermethode ist die Zusammensetzung der gefilterten Pixelwerte aus nur einer Zeile von MIP-Map-Samples. Im Allgemeinen wird das Verfahren zum Aufbauen eines Texturfilters aus mehreren Sonden, die eine projizierte Pixelabtastung in den Texturraum füllen, als "Fußabdruckanordnung" bezeichnet, selbst wenn die Implementierungsdetails variieren.

Leistung und Optimierung

Die erforderliche Abtastanzahl kann die anisotrope Filterung extrem bandbreitenintensiv machen. Mehrere Texturen sind üblich; jedes Textur-Sample könnte vier Byte oder mehr umfassen, so dass jedes anisotrope Pixel 512 Byte aus dem Textur-Speicher benötigen könnte, obwohl Textur-Komprimierung üblicherweise verwendet wird, um dies zu reduzieren.

Ein Videoanzeigegerät kann leicht mehr als zwei Millionen Pixel enthalten, und gewünschte Anwendungs-Frameraten liegen oft über 60 Frames pro Sekunde. Als Ergebnis kann die erforderliche Texturspeicherbandbreite auf große Werte anwachsen. Bereiche von Hunderten von Gigabyte pro Sekunde der Pipeline-Bandbreite für Textur-Rendering-Operationen sind nicht ungewöhnlich, wenn anisotrope Filteroperationen beteiligt sind.

Glücklicherweise mildern mehrere Faktoren eine bessere Leistung:

  • Die Sonden selbst teilen sich zwischengespeicherte Textursamples, sowohl Interpixel als auch Intrapixel.
  • Selbst bei anisotroper 16-Tap-Filterung werden nicht immer alle 16 Taps benötigt, da nur entfernte stark schräge Pixelfüllungen dazu neigen, stark anisotrop zu sein.
  • Die stark anisotrope Pixelfüllung bedeckt tendenziell kleine Bereiche des Bildschirms (dh im Allgemeinen unter 10%)
  • Texturvergrößerungsfilter benötigen (in der Regel) keine anisotrope Filterung.

Siehe auch

Verweise

Externe Links