Versteckte "Optimierungen"
25. Mai 2004 / von aths / Seite 3 von 3
Die Vorteile echter trilinearer Filterung (Forts.)
Den Effekt trilinearer Filterung möchten wir noch an einem Beispiel verdeutlichen: (MouseOver-Effekt per Javascript, Klick öffnet Alternativ-Variante ohne Javascript):
Echte trilineare Filterung (MouseOut) vs. Intellisample default (MouseOver)
"Brilineare" Filterung hat vor dem Übergang in die Graufläche die schärfere Textur. Trilineare Filterung erzeugt vor dem Übergang etwas weniger kontrastreiche Striche, aber zieht dafür die Struktur weiter in den soliden Grau-Bereich hinein, als "brilinear". Der zweite, wünschenswerte Effekt, ist stärker zu sehen als der erste. "Brilinear" erzeugt nicht nur ein anderes, sondern insgesamt schlechteres Bild (MouseOver-Effekt per Javascript, Klick öffnet Alternativ-Variante ohne Javascript):
Linear (MouseOut) vs. stückweise linear (MouseOver).
Hier in der Illustration eine lineare Kurve vs. der "brilinearen" Methode. Die Kreise markieren Punkte, wo jeweils zwei MIP-Texturen gleichermaßen (jeweils zu 50%) eingehen. Genau in der Mitte benötigt man eine zweite MIP nicht, da die eine mit 100% eingeht (und die zweite demzufolge mit 0%, weshalb man hier die Filterung gleich sparen kann).
Untersuchen wir den Wortsinn des in diesem Artikel viel strapazierten Begriffes: Tri-linear heißt, dreifach linear. Bi-linear werden jeweils vier Texel zusammengefiltert (je zwei Texel linear, und die beiden linear interpolierten Ergebnisse wiederum linear, was zusammen bi-linear ist). ATI rechnet hier übrigens weniger präzise als Nvidia. In der digitalen Welt gibt es keine echte Linearität, da alles quantisiert ist. Radeon kennt 64 Stufen, die GeForce 256, womit Nvidia vierfach feiner auflöst. Die dritte Linearität ergibt sich aus der linearen Interpolation beider Bi-linearen Samples. Wieder ist ATI ungenauer (mit 32 Stufen) als Nvidia (wie gewohnt 256 Stufen, also achtfach feinere Auflösung).
Eine der trilinearen Stufe ist notwendigerweise rein bilinear. Diese ist bei ATI bis zu acht mal breiter als bei Nvidia, schon hierdurch ergibt sich ein kleiner Leistungsvorteil (zulasten der Bildqualität). Die "brilineare" Methode sorgt nun dafür, dass diese eine reine bilineare Stufe noch sehr viel breiter werden kann. Diesen Bereich haben wir rot gefärbt (auch im "linearen" Bild ist ein kleiner Teil rot).
Was bringt die Zukunft?
Wir fragen uns angesichts diesem seltsamen Vorgehen, nur bei kolorierten MIP-Maps das zu liefern, was eingestellt wurde, wie weit es ATI und Nvidia noch treiben wollen. Kann noch ausgeschlossen werden, dass in Zukunft die Screenshotfunktion erkannt und speziell dafür ein hochwertiges Bild gerendert wird? Schon heute gibt es Mechanismen, die Prüfmaßnahmen täuschen. Den Schuh müssen sich Nvidia und ATI gleichermaßen anziehen.
Kann man den Chip-Entwicklern das deshalb durchgehen lassen, weil sie sich unbedingt auf dem Feld der reinen fps-Rate übertreffen wollen; soll man sich mit dem zufrieden geben, was der Treiber heute noch an Rest-Bildqualität liefert? Warum wird über solche Verschlechterungs-Maßnahmen erst geschwiegen (und nur der wundersame Geschwindigkeitsschub beworben), bevor man sich Ausreden flüchtet (die allesamt leicht widerlegbar sind); warum werden Bildqualitäts-Testmaßnahmen sabotiert?
Wo man auch stochert, überall findet man bei den selbsternannten Marktführern eine Treiber-Politik, die eigentlich nur Irritationen auslöst und somit Vertrauensverlust zufolge hat. In diesem Zuge sehen wir, das ist nicht übertrieben formuliert, einen wachsenen Unwillen zum Neukauf. Mehr Leistung: Hurra! Mehr Bildqualität? Nein, im Gegenteil.
Fazit
Wir sind entsetzt über das, was einem von Nvidia zugemutet wird, wenn man nach dem Kauf einer leistungsstarken GeForceFX 5900 derartigen Matsch wie im ersten Screenshot geliefert bekommt, wo man doch 8x AF aktiviert. Viele wichtige Texturen kriegen hier nur 2x. Möchte man generell nur mit 2x AF spielen, braucht es keine 5900er Karte. Sofern auf den nichtprimären Texturschichten nur Lightmaps liegen, ist diese "Optimierung" unproblematisch, aber natürlich kann niemand garantieren, dass nicht auch die sekundäre Textur-Stage für Basemaps genutzt werden.
Ausführlich hört man von ATI, was Temporal AA bringen soll, und Nvidia brüstet sich, 4x Antialiasing jetzt mit besserem Grid zu liefern, wobei dieses Grid schon 2000 von 3dfx sowie als Multisampling-Variante 2002 von ATI angeboten wurde. Wenn es Verbesserungen gibt, wollen die Herren vom Marketing dafür Applaus für ihre Auftraggeber einheimsen. Im gleichen Zuge wird, ganz ohne Tammtamm, woanders wieder gespart. Neuen Treiber geladen und Performance gewonnen? Angesichts der ausgereizten Treiber gehen diese "Gewinne" so gut wie immer mit Bildqualitätsverlust einher.
Wie wir zu Beginn anklingen ließen, haben die Firmen ein leichtes Spiel, da der über den Leistungsgewinn erfreute Kunde meistens keine Untersuchungen anstellt, woher diese "Gewinne" eigentlich kommen. Dabei wurde ihm ja auch etwas genommen. Das eigentlich inakzeptable ist, dass ihm auch die Option auf hergebrachte Qualität genommen wird. Inzwischen führt das zu solcher "Qualität" wie im ersten Screenshot zu sehen. Wer mag noch an einen Zufall glauben, dass die Treiber bei synthetischen Testprogrammen bessere Qualität liefern, als in Spielen geboten wird?
Der Slider für "Quality", "Performance" und "High Performance" nutzt unserer Meinung nach auch beim Detonator 45.23 ungünstige Konfigurationen. "Quality" liefert noch volle Qualität (sollen wir das wirklich loben, oder ist das nicht eine Selbstverständlichkeit?) während "Performance" praktisch nur noch bilinear filtert und damit unbrauchbar ist, von "High Performance" ganz zu schweigen.
Viele Spiele sind bei vollem Detailgrad ziemlich CPU-limitiert. Dann noch Bildqualität zu opfern (oder die Auflösung zu senken), bringt relativ wenig Geschwindigkeit. Mit dem 56.72er Forceware schätzen wir nach einigen Testläufen mit Fraps die durchschnittliche Max Payne Ingame-Framerate auf etwa 75-80 fps. Mit dem 45.23er Detonator büßt man rund 25% ein und muss mit circa 60 fps leben.
Senkt man die Auflösung von 1280x960 auf 1152x864, spart das etwa 20% Füllrate (was allerdings nicht vollständig in Geschwindigkeit umgesetzt wird – ein Hinweis auf begrenzte CPU-Limitierung), ohne dass die Feinkörnigkeit des Bildes durch den geringen Auflösungsverlust wirklich leidet. Es gibt in der Theorie viele Möglichkeiten, bei knapper Leistung die Geschwindigkeit zu steigern oder "überschüssige" Leistung in Bildqualität einzutauschen. Aktuelle Treiber verbauen jedoch viele interessante Optionen.
Wer z. B. wegen einem TFT-Display in 1280x1024 spielen möchte, braucht entweder eine GeForceFX 5900 Ultra, oder muss Details wegschalten. Wir halten die Grafik mit 8x AF und ohne Detail-Texturen für ansprechender als mit Detailtexturen und 2x AF – wobei das erste Setting natürlich schneller ist. Eine echte Wahl bleibt gar nicht: Der aktuelle Forceware-Treiber ist für Max Payne mit seiner 2x-statt-8x AF-Texturqualität schlicht unzumutbar.
Dieser Artikel wäre ohne Tools von Thomas Bruckschlegel (3D-Analyze), Xmas (Texture Filter TestApp) und Demirug (D3D AF-Tester) nicht möglich gewesen. Gedankt sei auch dem ganzen 3DCenter-Forum für die Fülle an Tipps und Hinweisen.