Zum 3DCenter Forum
Inhalt




Wie viel Optimierung ist optimal?

22. Mai 2004 / von aths / Seite 5 von 5


   Fortschritt?

Im Endeffekt heißen die maximalen AF-Modi auf GeForce 6800 und Radeon X800 zwar bis "16x", doch was man bekommt, ist einer Highend-Karte einfach nicht würdig. Wir sind nicht gegen die Option auf winkel-"optimiertes" AF. (Gibt es in diesem Zusammenhang eigentlich eine Verwendung des Wortes "Optimierung" - was nicht bedeutet, dass der Anwender ein schlechteres Bild hat?) Wenn der User ungeachtet des schlechten Trade-Offs solche AF-Methode mag, und er sie einstellen kann, ist das ein Vorteil. Wenn er aber keine Qualität haben kann, die anno 2001 schon möglich war, dafür Leistung jenseits der Monitor-Refreshrate erhält, muss die Frage erlaubt sein, warum er zur neuen Generation greifen soll. Das gilt auch für die Verweigerung trilinearer Filterung, obwohl die Karten das hardwaremäßig beherrschen.

Nun heißt Fortschritt oft, dass auch einige Dinge geopfert werden. Insgesamt müssen aber die Vorteile überwiegen. So beim Antialiasing: Multisampling ist weniger vielseitig als Supersampling, performt aber dank spezieller Hardware-Optimierungen, die beim Supersampling-Verfahren nicht möglich sind, sehr viel besser: Statt bis zu 75% Leistungsverlust bei 4x FSAA nur noch etwa 20%. Dennoch ist es wünschenswert, wenn als Option Supersampling weiterhin geboten wird – und sei es das hoch ineffiziente OGSS. Nvidia bietet sowohl reines Supersampling als auch Kombinationsmodi.

Natürlich sollte man nicht Äpfel mit Apfelsinen vergleichen, und das dann gegen Multisampling benchen. Dem Multisampling wird hin und wieder zum Vorwurf gemacht, dass es durch Alphatest entstandene Kanten nicht glättet. Das ist richtig, doch das wahre Übel der Textur-"Löcher" liegt darin, dass sie mit anisotroper Filterung nicht nur nicht verbessert, sondern verschlimmert werden. Dennoch kann man ja darüber nachdenken, ob AF nicht doch (auf Kosten der Qualität) stark beschleunigt werden kann, solange die Essenz von anisotroper Filterung bleibt.

Die Essenz ist natürlich, Texturen in jedem Winkel bestmöglich – bis zum eingestellten Grad – zu filtern. Während reines Alphatesting angesichts der immer weiter steigenden Polygonpower eh verschwinden wird, wird die Spielwelt-Architektur in vielen Games mit der Zeit immer weniger rechtwinkling sein. Deshalb brauchen wir kein AF, welches auf rechtwinklige Spielwelten optimiert ist.

Nun sieht es so aus, dass gegenüber der GeForce3/4Ti-Implementierung leichte Bildqualitätsnachteile in höherer Performance resultieren können. Die FX-Serie weicht zum Beispiel ein wenig von der "alten Schule" ab, und gewinnt ohne sichtbare Nachteile ein gutes Stück mehr Performance. Offenbar springt das AF gegenüber der alten Methode ein wenig später an. Beim anisotroper Filterung ist zudem eine User-konfigurierbare Stage-Optimierung sinnvoll: Ein Limit auf bi-AF, oder Limitierung des AF-Grades pro Texturestage je nach Spiel führt zu 30% und mehr Performancegewinn, ohne dass die Bildqualität wahrnehmbar sinkt.

Winkelabhängige Optimierung führt hingegen oft zu sichtbaren Nachteilen in der Texturqualität, gleiches gilt für generelle Limitierung auf bi-AF. Da ist nun jeder mehr oder weniger für empfindlich. Wir verstehen aber beim besten Willen nicht, wozu hochwertige FP24- oder FP32-Rechengenauigkeit da sind, wenn gleichzeitig kein quasi-perfektes AF geboten wird. So machen die "balanced" und "performance"-optimierten AF-Modi auf den FX-Karten keinen Sinn, da viel zu viel Qualität geopfert wird.

Unserer Meinung ist ein Umdenken erforderlich: Anisotrope Filterung ist kein Gimmick für einige Freaks, sondern sollte längst Standard sein. Mit AF werden Textursamples genauer. Pixelshader sind auf Texturen als Input angewiesen. Je besser das AF, desto präziser der Input, und damit umso akkurater der Output. Außerdem wird man noch auf lange Zeit mit "normalen" Texturen arbeiten, die lediglich mit Effekten aufgepeppt werden. Was isotrope Texturfilterung angeht, müssen für die Beherrschbarkeit der komplexen Berechnungen für das konkrete Texturdetail (LOD) etliche Vereinfachungen vorgenommen werden. Mit anisotroper Filterung, die zwar weiterhin auf isotropen Filtersamples fußt, wird die Filter-Ungenauigkeit reduziert. AF ist ein unbedingt erforderliches Feature für gute Texturen.

Natürlich gibt es das nicht umsonst: Die Logik, um das LOD fürs AF zu bestimmen, und vor allem die Schaltkreise, um die Position der AF-Samples auszurechnen, wären extrem aufwändig, wenn man Perfektion erreichen wollte. Es liegt nahe, auch hier einige Vereinfachungen zuzulassen. Während 2x AF von vielen Karten noch (im Vergleich zur isotropen Filterung) lehrbuchmäßig geboten wird, zeigt auch das herkömmliche GeForce-AF bei 4x (ganz kleine) und bei 8x (nicht mehr so kleine) Schwächen. Diese sind wahrscheinlich darin zu suchen, dass die AF-Rechnungen nur mit begrenzter Genauigkeit ausgeführt werden. Solche Kompromisse sind sinnvoll, um AF überhaupt zu ermöglichen und gleichzeitig die Chipgröße im Rahmen zu halten. S3 bietet im Deltachrome AF bis zu 16x, welches lediglich die von alten GeForce-Karten bekannte 45°-Schwäche aufweist. S3 beweist, dass wirklich gutes 16x AF möglich ist. Von den beiden selbsternannten Marktführern bringt das keiner.

Wie sinnvoll ist es von ATI und Nvidia, einen Chip mit etlichen Vollpräzision-Shader-FPUs für das Vertex- und Pixelshading auszustatten, und auf der anderen Seite mit Texturqualität zu sparen? Wir sind auf dem Wege in das Pixelshader-Zeitalter, und wollen jetzt die "alten" Multitexturing-Spiele in hohen Auflösungen, bei hoher Framerate, und in bester Bildqualität genießen. Das ist mit beiden neuen Flaggschiffen leider nicht drin.

Was ist heute wichtiger: Brachiale Pixelshader-Leistung oder beste Texturqualität? Wird Texturqualität unwichtiger, nur weil die Textursamples statt mit Multitexturing-Combinern jetzt mit Pixelshader-Programmen verrechnet werden?


   Grafikqualität anno 2004

Wagen wir einen Vergleich mit dem Antialiasing: Eigentlich hat jedes Muster immer einige "schwache" Winkel, die besonders schlecht geglättet werden. Beim 4x rotated / sparsed-Muster sind das Winkel, wo zusätzliche Glättung ohnehin nicht groß auffallen kann. Obwohl hier effektiv nur 2x Glättung geboten wird, erscheinen die Kanten nicht treppig. Die wichtigen 90°-Winkel (die horizontalen und vertikalen Kanten) werden mit 4x sparsed auch 4x geglättet. Trotz der "schwachen Winkel" wirkt die Treppen-Reduzierung schön gleichmäßig, wenn eine Kante langsam im Vollkreis rotiert wird.

Genau so sollte anisotrope Filterung scharfe Texturen unabhängig ihrer Lage erzeugen. Rotiert man einen quadratischen Tunnel, ändert sich die Texturschärfe leider sehr wahrnehmbar (MouseOver-Effekt per Javascript, Klick öffnet Alternativ-Variante ohne Javascript):



16x AF auf der Radeon erzeugt hier schöne scharfe Linien "bis hinten" (MouseOut). Rotiert man den Tunnel, ändert sich die Texturschärfe (MouseOver). Man stelle sich den Effekt in Bewegung vor: Im Hintergrund pulisieren scharfe Texturen und Matsch ... bei der GeForce 6800 sieht es vergleichbar aus.


Das ist unserer Meinung weder eine X800-"High Definition" (HD)-Erfahrung, noch einer Highend-GeForce würdig. Gebt uns trilineare und anisotrope Texturqualität, die der heutigen Grafikleistung angemessen ist!


Diese Kolumne nutzt neben eigenen Quellen: Screenshot von Techdemos bzw. Hinweise von Xmas und Demirug, der Artikel greift auch wertvolle Anregungen von zeckensack auf. Dass einige Radeon-Modelle "brilinear" filtern, wurde von Carsten Spille von der ComputerBase herausgefunden und untersucht. Weitere Untersuchungen stammen von Lars Weinand von der RivaStation und von Exxtreme. Allen sei herzlich gedankt.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back 3DCenter-Artikel - Index Home

Shortcuts
nach oben