Ein erster Blick auf die G80-Technologie
28. Dezember 2006 / von aths / Seite 3 von 5
Weitere Verbesserungen
Auch die Triangle-Setup-Leistung wurde verbessert, um der neuen Pixelleistung gerecht zu werden. Der Early-Z genannte Mechanimus, um in bestimmten Fällen ohnehin überdeckte (und damit unsichtbare) Pixel frühzeitig zu erkennen und sie gar nicht erst in die Pipeline zu lassen, wurde ebenfalls aufgebohrt. Exakte Zahlen hierfür haben wir derzeit jedoch nicht.
Details zum Cache-System gibt Nvidia leider nicht preis. Riesige Caches hat der G80 allerdings nicht – nach wie vor ist nur so viel Speicher on-chip implementiert, wie zum reibungslosen Ablauf erforderlich ist. Mit dem Threading-Mechanimus wird die Speicherzugriffslatenz recht gut versteckt, weshalb der G80 mit kleinen Caches auskommen kann. Der G80 in Form der GeForce 8800 GTX benötigt seine Rohbandbreite von 86,4 GB/s auch (der G71 hat "nur" 51,2 GB/s, die GeForce 8800 GTS immerhin noch 64 GB/s).
Wenig gesprächig zeigt sich Nvidia bei Details, welche die internen Komprimierungs-Mechanismen betreffen. Allerdings wäre es verfehlt, nur auf die nackten Rohleistungszahlen zu sehen. Mit Direct3D10 werden zum Beispiel acht Rendertargets mit unterschiedlichen Farbtiefen unterstützt, womit sich unter anderem Spiegel-Effekte oder auch HDR-Lighting-Szenen einfacher berechnen lassen.
Der G80 unterstützt endlich auch einen 32-Bit-Framebuffer mit (Integer) 10-10-10-2-Formatierung inklusive Multisampling-Support, sowie beim 64-Bit-Framebuffer (Floating Point) 16-16-16-16 ebenfalls Multisampling. Letzteres ist günstig für Szenen, die mit HDR-Lighting gerendert sind, ersteres wäre günstig, um in normalen Spielen Colorbanding loszuwerden, was beim normal formatierten 32-Bit-Framebuffer in einigen Spielen leider gelegentlich auftritt. So weit wir wissen, gibt es aber keine Option im Treiber, 10-10-10-2 zu erzwingen, wenn die Anwendung RGBX anfordert (also keinen Alpha-Kanal im Framebuffer braucht). Würde es so eine Option geben, würde dies bereits bei Quake III an einigen Stellen hilfreich sein.
Natürlich ist 10-10-10-2 im Integerformat (trotz sRGB-Kodierung) nicht HDR-tauglich. Deshalb unterstützt der G80 auch ein 9-9-9-5-Format, wobei die 5 Bit hinten nicht für Alpha, sondern für einen gemeinsamen Exponenten der RGB-Werte stehen. Diese Bitaufteilung nutzt die 32 Bit Wortbreite besser aus, als ein ähliches "RGBE" genanntes Format mit jeweils 8 Bit pro Kanal. Um bei Texturen nicht gleich 64-Bit-Texturen nutzen zu müssen, wurde ein 11-11-10-Format mit Gleitkommazahlen implementiert. Beide Darstellungen bieten nach unserer Definition kein hohe, sondern nur mittlere Dynamik – die Details hierzu werden wir in einem späteren Artikel diskutieren. Dass Multisampling auch beim 128-Bit-Framebuffer (32-32-32-32) funktioniert, ist gut und schön, aber vorerst ohne Belang.
Die sichtbarsten Verbesserungen beim G80 betreffen Antialiasing und anisotrope Filterung. Der G80 bietet bis zu 8x sparse Multisampling. Folgende Modi sind bisher implementiert:
AA-Name | AA-Modus |
2x | 2x Multisampling |
4x | 4x Multisampling |
8x | 4x Multisamping mit Erweiterung auf eine 8x-Maske* |
8xQ | 8x Multisampling |
16x | 4x Multisamping mit Erweiterung auf eine 16x-Maske* |
16xQ | 8x Multisamping mit Erweiterung auf eine 16x-Maske* |
* Die erweiterte Maske wirkt nur bei Polygonen und nicht bei Stencil-Schatten. Da weniger Tiefeninformationen als Bedeckungs-Informationen gespeichert werden, kann es generell zu unerwünschten "Hüggeln" kommen. |
Alle Masken nutzen ein "Sparse Grid", welches für die gegebene Subpixelzahl eine optimale Glättung liefert. Wichtig ist, dass es mit "8xQ" volles 8x sparse Multisampling mit allem Pipapo gibt, also auch inklusive TAA-MS und TAA-SS. Texturen mit bis zu 8192×8192 Texeln sind jetzt in allen Texel-Formaten nutzbar. Auch das Rendertarget kann jetzt 8192×8192 Pixel haben, was neue Spielräume bei (bislang noch nicht verfügbaren) Antialiasing-Modi mit integriertem Oversampling ermöglicht.
Die entscheidenste Verbesserung betrifft die anisotrope Filterung. Der G80 bietet eine weitgehend winkelunabhängige anisotrope Filterung. Zwar kann das vom NV40 und G70 bekannte stark winkelabhängige Muster von der Hardware auch noch genutzt werden, dies ist allerdings objektiv Unsinn. Möglichst winkelunabhängige anisotrope Filterung bietet nämlich immer den besten Trade-Off aus Geschwindigkeitsverlust und Qualitätsgewinn. Deshalb bietet der Treiber momentan auch keine Winkelabhängigkeit mehr an – Nvidia verunmöglicht so einigermaßen gleichwerte Bildqualitäts-Settings zu älteren Karten. Was es mit der Winkelabhängigkeit im einzelnen auf sich hat, werden wir in einem späteren Artikel noch etwas genauer ausführen.
Natürlich besteht die Gefahr, dass Nvidia irgendwann "Optimierungspotenzial" sieht und die AF-Texturen wieder standardmäßig flimmern lässt – wie aktuell beim NV40 und G70 der Fall. In World of Warcraft hatten wir jetzt schon mit der GeForce 8800 GTX trotz HighQuality-Modus mehr Texturflimmern als mit einer GeForce 7600 GT im selben Modus. Ob das ein applikationsspezifisches Problem ist, wissen wir noch nicht.
Wie schon erwähnt, wird beim G80 bei aktiviertem AF standardmäßig keine trilineare Filterung geboten, dies muss erst vom Anwender eingeschaltet werden: Was ATI und Nvidia seit einiger Zeit unter trilinearer Filterung verstehen, und wir "brilinear" nennen, ist zwar besser als bilinear, aber objektiv nicht trilinear. Doch nur volle trilineare Filterung bietet auch volle trilineare Qualität. Die scharfen MIP-Bänder von bilinearer Filterung etwas zu überblenden, ist keine volle trilineare Qualität.
Während wir uns angesichts der irrsinnigen Texel-Leistung über solche Spielchen wundern, bleibt festzustellen, dass der G80 die Hardware-Voraussetzungen hat, um die bisher beste jemals implementierte Texturfilterung auch auf dem Monitor anzuzeigen. Ob wir die volle Qualität auch (dauerhaft) zu sehen bekommen, muss abgewartet werden – in der Vergangenheit hat Nvidia immer wieder mal klamm und heimlich so genannte "Optimierungen" eingeführt, welche mit Qualitätsverschlechterung einhergehen. Wir hoffen, dass dies beim G80 nicht mehr vorkommt und Nvidia ab heute bei der Texturfilterung wieder eine Vorbildrolle einnimmt. Das wäre auch ein exzellenter Kaufgrund für später erscheinende Mittelklasse-Karten, die auf der G80-Architektur basieren.
In Unreal Tournament 2003 und 2004 ist dagegen offenbar noch alles an Zwangs-"Optimierungen" aktiv, so dass man mit dem G70-Chip identische Ergebnisse bekommt. Einerseits meinen wir, dass zunächst noch abgewartet werden sollte, welche Texturqualität Nvidia mit der 100-er Forceware-Serie anbieten wird – andererseits hinterlassen die bisher gefundenen Qualitätskompromisse erst einmal einen schalen Nachgeschmack. Folgende Bilder zeigen die normale Filterung ohne applikationsspezifische Zwangs-"Optimierung":
|
| |
|
|
Die AF-Tunnel-Bilder dürfen allerdings nicht überinterpretiert werden: Sie zeigen einzig und allein die LOD-Berechnung, lassen jedoch keine Rückschlüsse auf mögliche Unterfilterung zu.