Wie viel Optimierung ist optimal?
22. Mai 2004 / von aths / Seite 4 von 5
Rückschritt bei trilinearer Filterung
ATI liegt sowohl bei iso- als auch bei anisotroper Qualität zurück. Während sie der Konkurrenz vorhalten, bei Applikations-Anforderung keine trilineare Filterung zu liefern (was wie gesagt auch stimmt), sind sie nun selbst dazu nicht mehr in der Lage. Bei ATI ist es nur gut versteckt. Bei stark unterschiedlichen MIP-Maps wird in der Tat noch trilinear gefiltert. Jedoch nicht, wenn man tatsächlich spielt (wo die MIPs entweder automatisch erzeugt oder vorgefertigt geladen werden, man jedenfalls nicht pro MIP eine andere Grundfarbe haben.)
Ist "adaptive" trilineare Filterung nun ein Fortschritt? Ja, solange es Option bleibt. Mittelklassekarten wie die Radeon 9600 profitieren: Die Grafik wird nur wenig schlechter, dafür gibt es mehr Geschwindigkeit, was man bei dieser Karte auch brauchen kann. Leider kann man nicht mal alte, anspruchslose Spiele (sagen wir, Half-Life oder Counterstrike) so genießen, wie 1999 mit einer TNT möglich: Nämlich mit echter trilinearer Filterung. Das könnte jede 9600 in höchsten Auflösungen bringen.
Wozu hat ATI im Treiber einen Slider für Texturqualität, wenn die Maximaleinstellung für Qualität keine echte trilineare Filterung bringt? Warum liefert Nvidia bei "Quality" keine trilinear gefilterten Texturen? Behauptungen (die man sinngemäß von ATI genau so wie von Nvidia hört), das Bild sei jetzt vielleicht anders, aber nicht schlechter, sind streng genommen eine Frechheit. Erstens stimmt es nicht, zweitens wird der Anwender entmündigt. Er bekommt einfach nicht mehr die gewünschte Texturfilterung in seinen Spielen.
ATI und Nvidia trauen sich aber, weiterhin von trilinear zu sprechen. Obwohl weder der Wortsinn erfüllt, noch die OpenGL-Formel eingehalten wird. In den letzten Jahren gab es viele Fortschritte: Statt zwei Pipelines haben wir 16, statt Multitexturing-Combinern haben wir Floatingpoint-Pixelshader. Doch trilineare Filterung wurde schleichend abgeschafft, stattdessen bekommen wir eine Ersatz-Methode vorgesetzt, welche gerade die schlimmsten bilinearen Artefakte verhindert. Als Option für Mittelklasse-Karten nützlich, als Standard-Einstellung für alle Karten noch tolerierbar. Als genereller Ersatz für richtige trilineare Filterung jedoch inakzeptabel.
8 = 8? Oder: Ist zwei mal 8 gleich 16?
Beim Antialiasing forderten wir, dass ein gegebenes Setting zu höchstmöglicher Qualität führen sollte, welche damit möglich ist. Auf anisotrope Filterung übertragen heißt das: Bei 4x AF sollten möglichst alle Pixel, die davon profitieren würden, auch mit 4x gefiltert werden. Reicht die Leistung nicht aus, kann man ja auf 2x zurück schalten. Was für einen Sinn hat es, 4x AF zu bieten, was hier und da noch 4x anwendet, aber eben nicht überall, wo es Qualitätsverbesserungen bringen würde?
Nvidia empfielt in den Benchmark-Richtlinien für die GeForce 6800, mit 8x AF zu benchen. Gegenüber den eigenen älteren Produkten ist man leistungmäßig natürlich im Vorteil, da bestimmte Bereiche auf der 6800 nur 2x AF bekommen, wo die alte Generation je nach den Erfordernissen noch 4x oder 8x nimmt. Das neue 16x sieht nicht überall so gut aus, wie das alte 8x. Teilweise wird nur 2x-Qualität geboten. Das neue Produkt mit deutlich mehr Leistung ermöglicht nicht mehr, diese Leistung so in Qualität umzusetzen, wie das Vorgängerprodukt. Fortschritt bizarr.
Als Käufer ist es mein Geld, was ich für eine Grafikkarte ausgebe. Demzufolge möchte ich auch bestimmen können, wie ich die erhaltene Leistung einsetze: Für maximale Performance, oder für maximale Qualität. Angesichts der Tatsache, dass ohne FSAA und AF die neuen Karten ohnehin unsinnig schnell sind und hier die Vor-Vorgängergeneration vollkommen ausreicht, ist es erst recht unsinnig, wenn man nicht mehr die althergebrachte Texturqualität bekommt, sondern zur Leistung gezwungen wird.
ATI bestach noch nie durch besonders tolle Texturqualität, insofern ist es fragwürdig, die alte Methode neu als "High Definition"-Gaming zu vermarkten, wo sich gegenüber Radeon 9700 nichts zum Guten geändert hat. Nur liefert die 9700 soweit wir das sehen noch echte trilineare Filterung, wenn sie angefordert wird, wobei das Radeon-trilinear nicht mit GeForce-trilinear mithalten kann. Von der anisotropen Qualität ganz zu schweigen – dennoch brüstet sich ATI mit "High Definition".
Hin und wieder hört man Argumentationen, ein "winkeloptimiertes" AF sei im Gegenteil benutzerfreundlich, da somit hohe AF-Grade besser performen würden. Das mit dem Usernutzen zweifeln wir an. Natürlich steigt die Leistung, aber nur auf Kosten der Bildqualität. Sonst wäre ein Leistungsgewinn nicht möglich – bei allen Benchmarks kam es uns noch nie unter, dass eine Grafikkarte magisch begabt war.
Skalierung der Leistung
Traditionell skaliert man Leistung mit der Auflösung. Um in einem Spiel höhere Frameraten zu erreichen, kann man Details abschalten und/oder die Auflösung senken. Zusätzliche Optimierungen wie z. B. Kompromisse bei der trilinearen Texturfilterung, oder den vollen AF-Grad nur auf die Primärtextur zu applizieren, sind Möglichkeiten, mit denen die Leistung bei gleichbleibender Auflösung beeinflusst werden kann. Solche Optionen sind sinnvoll. Je nach Spiel ist es besser, statt Auflösung etwas Trilinearität und/oder AF auf "unwichtigen" Texturen zu opfern, als die Auflösung zu senken oder Details herunterzuschalten.
Lächerlich wird es, dass man beim Zwang zu "optimierter" Grafik auch die alten Spiele, die mehr als schnell genug sind, nicht mehr in voller Qualität genießen kann. Solche Bevormundung resultiert über kurz oder lang in Käuferwut: Wer sieht, dass eine neue Karte mit fetter Leistung prahlt, ohne in der Praxis die Bildqualität seiner jetzigen Karte zu liefern, dem vergeht die Lust, mehrere 100 Euro auf den Tisch zu legen. Anders formuliert: Es werden Dinge bezahlt (wie trilineare Filterung, was der Chip ja beherrscht) die man dann aber nicht nutzen darf.
Zusätzlich nervt, dass man ja in der Gefahr lebt, nach dem Kauf weitere Bildqualitätsverschlechterungen aufs Auge gedrückt zu bekommen. Das kam in der Vergangenheit sowohl bei Nvidia als auch bei ATI vor. Wir wurden systematisch und schrittweise an immer schlechtere Bildqualität gewöhnt. Sehr gutes AF mit echter trilinearer Filterung gibt es seit 2001 mit der GeForce3. Von dieser Qualität sind wir inzwischen wieder ein großes Stück entfernt, trotz des dramatischen Leistungszuwachses. Ob man z. B. echte trilineare Filterung braucht, kann einfach nicht im Ermessensspielraum des Treibers liegen. Der Spiele-Entwickler entscheidet, wie seine Texturen gefiltert werden wollen. Der Treiber darf Optionen anbieten, um dem Anwender die Möglichkeit zu geben, Entscheidungen des Spiele-Entwicklers zu modifizieren.
Die meisten Spiele-Entwickler denken weder an Antialiasing noch an anisotrope Filterung. Hier bieten die Treiber dank heutiger Hardware-Möglichkeiten an, bessere Qualität zu liefern als vom Entwickler vorgesehen: Der Anwender tauscht Leistung in Qualität. Eine Qualitätsverbesserung zu verschlechtern und die volle Qualität dem Käufer nicht mehr zugänglich zu machen, ist natürlich der falsche Weg. Mit der Leistung unter 16x AF zu werben und dabei nur Screenshots auszuwählen, wo die Nachteile winkelabhängiger "Optimierungen" nicht zu sehen sind, ist mindestens als fragwürdig einzustufen.