Zum 3DCenter Forum
Inhalt




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":



Sofern die trilineare "Optimerung" deaktiviert ist und man echte trilineare Filterung hat, sieht 8x AF rein von der Winkelabhängigkeit beinahe perfekt aus.

 


16x bilinear: Bislang war der traditionale Maximal-AF-Modus (GF3/4/FX: 8x, S3 Delta/Gammachrome: 16x) bei bilinearer Filterung auf MIP-Stufe 1 eher ein Quadrat. Dieses Achteck ist eindeutig besser.

 


Bei voller trilinearer Filterung bietet der G80 bei 16x AF eine wesentlich bessere MIP-Auswahl als die Radeon-X1000-Serie. Die Radeon filtert im Tester trilinear, in Spielen oft mehr oder weniger "brilinear".

 


Standardmäßig ist leider "brilineare" Filterung aktiv. In der Praxis hat man bei angeblichem trilinearen 16x AF fast bilineares AF. Aus unserer Sicht ist das generell nicht akzeptabel (gilt für jeden betroffenen Hersteller) – und schon gar nicht für diese Karte.


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.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back Weiter / Next

Shortcuts
nach oben