HighEnd-Chip G70: Nur noch mit flimmernder Grafik?
13. August 2005 / von aths / Seite 1 von 2
Mit der GeForce 7800 GTX zeigte Nvidia, dass die ohnehin starke GeForce-6800-Ultra-Leistung in der SM3-Generation nicht das Ende der Fahnenstange ist. Der G70-Chip bietet mehr Pipelines, die zudem verbessert wurden, und mehr Takt. Außerdem gibt es nützliche neue Antialiasing-Modi.
Doch die Texturqualitäts-Ansprüche seiner HighEnd-Kunden scheint Nvidia als ungewöhnlich niedrig einzuschätzen. Anders können wir uns derzeit nicht erklären, warum der neue HighEnd-Chip G70 (GeForce 7800 GT/GTX) bei aktiviertem anisotropen Filter zu Texturflimmern neigt. Zur Erinnerung: Dies ist beim NV40 (GeForce 6800 Serie) standardmäßig ebenfalls so, lässt sich aber mit der Aktivierung des HighQuality-Modus in den Treibern abschalten.
Beim G70-Chip bringt dagegen die Aktivierung von "HighQuality" in den Treibern nicht den gewünschten Effekt - die Karte neigt weiterhin zum Texturenflimmern. Hat es Nvidia mit dem NV40-Standard geschafft, den User an AF-Texturflimmern zu gewöhnen - so dass es für den G70-Chip gleich gar keine Option mehr auf flimmerfreie AF-Texturen gibt?
Dabei ist der anisotrope Filter (AF) per Definition eigentlich zur Qualitätsverbesserung von Texturen gedacht – doch wenn die von einer 500-Euro-Hardware erzeugten Texturen am Ende flimmern, kann man wohl kaum von einer "Qualitätsverbesserung" reden. Gute Qualität kostet natürlich Geschwindigkeit. "Leistung" ist jedoch "Arbeit pro Zeit". Bei dem "optimiertem" AF wird weniger gearbeitet – die Leistung steigt damit also nicht.
Wer einige 100 Euro für eine neue Karte ausgeben will, tut das vermutlich nicht, um dann ohne anisotrope Filterung zu spielen. Hierbei ist es schon bemerkenswert, dass der G70-Chip, wie auch der NV40-Chip, bei aktiviertem 16xAF einige Bereiche mit maximal 2xAF behandelt. Das war zu Zeiten des R300 (Radeon 9500/9700 Serie) vielleicht noch akzeptabel, ist aber heute nicht mehr zeitgemäß (auch der R420-Chip leidet unter dieser Beschränkung). Bei einem SM3-Produkt wie dem NV40 oder G70 verstehen wir solche Kompromisse am AF aber nun gleich gar nicht.
Was das G70-Flimmern angeht, wurde dies zum Launch der GeForce 7800 GTX lediglich von einer einzigen Seite beschrieben: Im Artikel auf Hardware.fr von Tridam. Auch wir von 3DCenter boten zum Launch neben Benchmarks im Quality-Modus (an dieser Stelle verließen wir uns fahrlässigerweise auf Nvidias Reviewer's Guide) lediglich Beschreibungen zur verbesserten Pixelshader-Technik. Solange das Problem mit den Texturen beim G70 nicht gelöst wird, sehen wir jedoch keine Veranlassung, näheres zur Shader-Technik zu schreiben: Erst einmal muss das Multitexturing zufriedenstellend funktionieren, dann kann man sich auch mit anderen Dingen befassen.
In einer älteren News nannten wir als Ursache für das G70-AF-Flimmern schlicht Unterfilterung. Demirugs Untersuchungen haben wir nun die Erkenntnis zu verdanken, dass die Ursache auch anders gelagert sein könnte: Zwar werden die benötigten Daten aus der Textur gelesen, und zwar alle Daten, doch sie werden falsch verrechnet. Nvidias Versuch, mit weniger Arbeit gleiche Qualität zu erzeugen, war eine gute Idee, leider schlug sie fehl. Das kann ein Hardware-Bug oder ein Treiber-Fehler sein.
Letztlich spielt dies jedoch keine Rolle: Dass der G70-Chip, der eine Texelleistung von mehr als 10 Gigatexeln anbietet, bei eingestelltem 16xAF winkelabhängig teilweise nur 2xAF nutzt, und außerdem zum Texturflimmern neigt, ist schlicht ein Armutszeugnis. Im gleichen Zug müssen wir Nvidias Behauptung in den Review Guidelines bemängeln. Dort steht (den Fettdruck haben wir aus dem Original übernommen) folgendes:
"Quality" mode offers users the highest image quality while still delivering exceptional performance. We recommend all benchmarking be done in this mode. |
Diese Einstellung flimmert auf dem NV40 wie auf dem G70, aber Nvidia nennt das "the highest image quality". Ein Bild, welches auch nur die Bezeichnung "Quality" (auch ohne "High") beansprucht, darf unserer Meinung nicht zum Texturflimmern neigen. Zum Thema High Quality ist zu lesen:
"High Quality" mode is designed to give discriminating users images that do not take advantage of the programmable nature of the texture filtering hardware, and is overkill for everyday gaming. Image quality will be virtually indistinguishable from "Quality" mode, however overall performance will be reduced. Most competitive solutions do not allow this level of control. Quantitative image quality analysis demonstrates that the NVIDIA "Quality" setting produces superior image fidelity to competitive solutions therefore "High Quality" mode is not recommended for benchmarking. |
Dies können wir jedoch nicht bestätigen: Der anisotrope Filter des G70-Chips flimmert auch unter High Quality, die aktuellen Radeon-Karten tun dies nicht. Uns würde wirklich interessieren, nach welchen Kriterien Nvidias "quantitative image quality analysis" die Bildqualität untersucht.
MouseOver 16xAF á la GeForce 6/7 vs. 8xAF á la GeForce 3/4/FX
Das Bild zeigt einen Tunnel aus 200 Seitenflächen (weshalb das Bild am Rand so "aufgefächert" wirkt). Die Farben stehen für jeweils ein neues MIP-Level. Je später, also je weiter innen die neuen Farben beginnen, desto detaillierter (mit höheren AF-Levels) wird die Textur gefiltert. Bei einigen Winkeln wie z. B. 22,5° fangen die MIPs bei GeForce 6/7 sehr früh an, weil dort nur 2xAF geboten wird. Die GeForce 3/4/FX hat bei 45° eine Winkel-Schwäche, zeigt jedoch schon bei nur 8xAF das insgesamt viel detailliertere Bild - weil die eingefärbten MIPs erst später, mehr in der Mitte kommen.
Faktisch bietet die GeForce 3/4/FX das eingestellte 8xAF über den größten Teil des Bild, nur geringe Anteile werden mit 4xAF behandelt. Die GeForce 6/7 hingegen bietet das eingestellte 16xAF über den wenigsten Teil des Bildes, nur die (natürlich wichtigen) 45-Grad-Winkel erhalten 16xAF. Die meisten anderen Winkel werden jedoch sehr viel undetaillierter als das eingestellte 16xAF gefiltert. Große Teile des Bildes werden dabei nur mit 2x und 4xAF gefiltert, die insgesamte Texturverbesserung ist sogar schlechter als das 8xAF der GeForce 3/4/FX.
Zudem bringt die Ungleichmäßigkeit der Filterung auf GeForce 6/7 eine zusätzliche "Unruhe" ins Bild: Je nach Winkel liegen im Extremfall sehr gut gefiltere Texturen (mit 16xAF gefiltert) direkt neben nur lässig gefilterten Texturen (mit 2xAF gefiltert), was sogar dem ungeübtem Auge unangenehm auffällt. "World of Warcraft" sei beispielhaft genannt.
Allerdings erlaubt dieser AF-Tunnel noch keine Aussage bezüglich Unterfilterung, er zeigt lediglich an, wann welche MIP-Stufe genutzt wird. Daraus sollte man einen bestimmten AF-Grad herleiten können, doch bei Unterfilterung werden weniger Samples verrechnet als eigentlich notwendig. Beispiel: Unterfiltertes 8xAF ist kein echtes 8xAF. Zwar wird hier die richtige MIP-Map genommen, aber die falsche Sample-Zahl. Dieser Tunnel zeigt nur, wann welche MIP genommen wird und nicht, ob das AF korrekt implementiert wurde.