Im Bereich der 3D-Computergrafik ist die anisotrope Filterung eine Technologie, die die Qualität von Texturbildern verbessert. Sie wird hauptsächlich zur Verbesserung der Bildschärfe bei schrägen Betrachtungswinkeln eingesetzt. Diese Technologie wirkt nicht in alle Richtungen gleich, sondern vielmehr in die Richtung, in der die Textur beobachtet wird, und zwar durch gezielte Filterung, um Unschärfen zu reduzieren und Details zu bewahren, insbesondere bei extremen Betrachtungswinkeln.
Anisotrope Filterung bewahrt die „Schärfe“ von Texturen und vermeidet den Verlust von Bilddetails bei Verwendung herkömmlicher Mipmap-Techniken.
Herkömmliche isotrope Filterung verringert die Auflösung sowohl der x- als auch der y-Achse auf jeder Ebene. Beim Rendern auf einer Ebene, die relativ zur Kamera geneigt ist, verringert sich die Frequenz der vertikalen Achse. Die Reduzierung führt zu einer unzureichenden horizontalen Auflösung. Dadurch wird Aliasing in andere Richtungen vermieden, Texturen in anderen Richtungen können jedoch unscharf werden.
Im Gegensatz dazu ermöglicht die anisotrope Filterung das Filtern von Texturen in unterschiedlichen Seitenverhältnissen. Wenn die Texturauflösung beispielsweise 256 Pixel × 256 Pixel beträgt, kann diese Filtertechnologie sie auf 128 Pixel × 128 Pixel reduzieren und sie weiter auf nichtquadratische Auflösungen wie 256 Pixel × 128 Pixel und 32 Pixel × 128 Pixel reduzieren. Dies verbessert nicht nur die Texturdetails bei Abschrägungswinkeln, sondern sorgt auch für Klarheit in anderen Richtungen, wenn Aliasing vermieden werden muss.
In praktischen Anwendungen können unterschiedliche anisotrope Filtergrade durch entwickelte Einstellungen angepasst werden. Dieses Verhältnis ist das maximale Anisotropieverhältnis, das vom Filterprozess unterstützt wird. Beispielsweise erzeugt ein anisotroper 4:1-Filter einen klareren Effekt auf Abschrägungstexturen als ein 2:1-Filter. Das bedeutet, dass bei stark verzerrten Texturen die 4:1-Filterung detailliertere Ergebnisse liefert als die 2:1-Filterung. Die meisten Szenen erfordern jedoch keine so hohe Präzision und zeigen nur spezifische Unterschiede bei einer großen Anzahl von Partikeln, die von der Entfernung beeinflusst werden.
Moderne Grafikhardware legt eine Obergrenze für diese Filterebene fest, um übermäßig komplexe Hardwaredesigns und abnehmende visuelle Ergebnisse zu vermeiden.
Echte anisotrope Filterung wird typischerweise auf Pixelbasis im laufenden Betrieb durchgeführt. Wenn in der Rendering-Hardware eine Textur anisotrop abgetastet wird, werden basierend auf der projizierten Form dieses Pixels mehrere Abtastungen um sie herum vorgenommen. Einige der ursprünglichen Softwareansätze verwendeten Tabellen mit summierten Flächen, und jeder Stichprobendurchlauf könnte selbst eine gefilterte Mipmap-Instanz sein, was den Stichprobenprozess erschwert. Wenn beispielsweise 16 dreifache lineare Samples erforderlich sind, müssen möglicherweise 128 Samples aus der gespeicherten Textur entnommen werden, da für die dreifache lineare Mipmap-Filterung vier Samples als Grundlage für jede Mipmap erforderlich sind. Dies ist in einigen Fällen möglicherweise nicht erforderlich.
Die Anzahl der Samples für die anisotrope Filterung kann zu extrem hohen Bandbreitenanforderungen führen. Jedes Texturmuster kann mehr als vier Bytes umfassen, sodass für jedes anisotrope Pixel möglicherweise bis zu 512 Bytes an Daten aus dem Texturspeicher abgerufen werden müssen. Dies führt dazu, dass Videoanzeigegeräte häufig eine Bandbreite von 300–600 MB/s benötigen und Texturfiltervorgänge in einigen Szenen Hunderte von GB/s erfordern. Glücklicherweise trägt etwas dazu bei, diese Leistungseinbußen zu reduzieren: Stichprobenpunkte können zwischengespeicherte Stichproben gemeinsam nutzen, entweder zwischen benachbarten Punkten oder innerhalb desselben Pixels. Selbst bei 16 Samples ist es möglich, dass nicht alle 16 benötigt werden, da nur die weiter entfernten, stark geneigten Pixel besonders kritisch sind.
Durch die Kombination dieser Techniken wird die anisotrope Filterung heute in moderner Grafikhardware und Videotreibern immer häufiger eingesetzt. Benutzer können das Filterverhältnis über Treibereinstellungen anpassen, und Entwickler können über APIs auch ihre eigenen Anforderungen an die Texturfilterung implementieren, wodurch detailliertere Bilddetails dargestellt werden können. Aber haben Sie schon einmal darüber nachgedacht, wie sich diese Technologien in der zukünftigen Bildpräsentation weiterentwickeln können?