Zum 3DCenter Forum
Inhalt




ATi & nVidia im "Optimierungs"-Wettstreit

26. Juli 2003 / von Leonidas / Seite 6 von 9


   ATi-Optimierungen  (Forts.)

Damit wäre dieser Artikel eigentlich schon zu Ende. Fast - denn der ATi-Treiber hält dann doch noch eine Überraschung für uns bereit, welche sich allerdings - erst einmal - nicht durch eine Differenz in den Benchmarks bemerkbar machte. Denn eigentlich wollten wir für vorstehende nVidia-Screenshots unter Unreal Tournament 2003 nur ein paar ATi-Vergleichsscreenshots aufnehmen, um zu zeigen, wie "richtig" gefiltert wird. An den "realen" Screenshots war dabei nichts auszusetzen, doch die Screenhots mit eingefärbten MipMaps zeigen sehr überraschendes, sobald man den anisotropen Filter aktivierte (Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung, rechts zum Vergleich das gleiche nVidia-Bild mit AntiCheat-Script):

Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung   Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung

Es zeigt sich hier - erst einmal - ein klarer bilinearer Filter - und das obwohl der Quality-Filtermodus laut ATi eigentlich eindeutig trilinear filtern sollte. Allerdings wäre da noch die schwache blaue Färbung vor der deutlich blauen Färbung zu beachten, welche wiederum doch auf eine teilweise trilineare Filterung hindeutet. Um der Sache auf den Grund zu gehen, haben wir uns zum Vergleich zu dem "Normalbild" auch noch eines mit reinem bilinearen Filter angesehen, wo also alle Texturen definitiv nur bilinear gefiltert werden (erzeugt im übrigen mit dem rTool):

Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung   Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung

Der Unterschied läßt sich deutlich erkennen und läßt wohl nur den Rückschluß zu, daß ATi hier in der Tat einige Texturen trilinear, andere dagegen nur bilinear filtert. Um dies genauer in Erfahrung zu bringen, bemühten wir den D3D AF-Tester, welcher in der Lage ist, die MipMaps für verschiedene Texturen-Stufen ("Texture Stages") anzuzeigen. Dabei zeigte sich unter trilinearem anisotropen Filter ein deutlicher Unterschied zwischen der Textur-Stufe 0 und allen anderen Texturen-Stufen:

Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung   Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung

Die für diesen Test benutzte Treiber-Version 03.6 deutet schon an, daß dieses Verhalten nicht auf einen Treiber beschränkt ist. Vielmehr verhalten sich alle ATi-Treiber ab der Version 03.2 bis zur aktuellsten Treiber-Version 03.6 genauso wie auf vorstehenden Screenshots zu sehen. Zum Vergleich dazu die nVidia-Variante in der Treiber-Version 44.03 (Ergebnisse sind bis einschließlich Treiber-Version 44.90 gleich), wo im Quality-Filtermodus alle Texturenstufen einwandfrei gleich trilinear gefiltert werden (mit der Ausnahme von Unreal Tournament 2003, wie schon vorbeschrieben):

Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung   Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung

Damit läßt sich konstatieren, daß die auf vorstehenden Unreal Tournament 2003 Screenshots zu sehenden bilineare Optimierung unter dem anisotropen Filter keine Applikations-spezifische Optimierung ist, sondern generell von ATi für den anisotropen Modus unter allen Anwendungen eingesetzt wird. Im genauen wird unter dem anisotropen Filter bei ATi nur die Basis-Textur ("Texture Stage 0") trilinear gefiltert, alle weiteren Texturen ("Texture Stage 2-7") dagegen dann nur bilinear. Dieser Verhalten des ATi-Treibers gilt dabei für alle Anwendungen, sofern diese im anisotropen Modus betrieben werden.

Ähnlich wie bei nVidia hängt diese generelle Optimierung des anisotropen Filters natürlich an dem Umstand, daß auch die aktuellen ATi-Grafikchips nur bilinear filternde Textureinheiten besitzen, somit für trilineare Filterung doppelt soviel Renderingleistung benötigen und damit natürlich bei bilinearer Filterung enorm an Berechnungsaufwand einsparen können. Zudem macht man sich zunutze, daß im gewöhnlichen Lightmaps oder auch kleinere Bumpmaps in der Tat keine trilineare Filterung benötigen, weil sich aufgrund deren Art bzw. deren Größe kaum Mip-Banding-Effekte einstellen können, welche eine trilineare Filterung notwendig machen würden.

Allerdings mißachtet ATi hier trotzdem, daß es durchaus auch andere Texturen neben der Basis-Textur gibt, welche Mip-Banding zeigen können und demzufolge trilinear gefiltert werden sollten, beispielsweise Detailtexturen. Und daß dieselbe ATi-Hardware selbstverständlich auch alle Texturen korrekt trilinear filtern kann, zeigt sich, wenn man den anisotropen Filter deaktiviert (links 8x anisotroper Filter, rechts ohne anisotropen Filter):

Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung   Klick öffnet verlustfrei komprimierten Screenshot in 1024x768er Auflösung

Wie gesagt: Eine Applikations-spezifische Optimierung liegt hier definitiv nicht vor, da nicht nur Unreal Tournament 2003 wie vorstehend zu sehen diesen Mischmasch aus trilinearer Filterung für die Basis-Textur und bilinearer Filterung für die restlichen Texturen einsetzt, sondern der ATi-Treiber dies allen Anwendungen so diktiert. Dennoch muß die Frage in den Raum gestellt werden, ob sich diese generelle Optimierung für den anisotropen Filter wirklich "trilinearer Filter" nennen darf und ob das ganze nicht möglicherweise in Richtung unerlaubter Optimierung tendiert. Denn wirklich sauber erscheint diese generelle Optimierungs-Methode zumindestens uns nicht.






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

Shortcuts
nach oben