Zum 3DCenter Forum
Inhalt




Inside nVidia NV40

14. April 2004 / von aths / Seite 4 von 6


   Bereit für den 64 Bit Framebuffer - oder nicht?

Vielleicht erinnert sich noch wer an die alten Tage, als der 16 Bit Framebuffer langsam durch einen 32 Bit Framebuffer ersetzt wurde. Daraufhin gab es viele, oft hitzige Diskussionen, "wie viel" besser 32 Bit nun sein würden. Natürlich gibt es hier keine einfache Antwort. Alte Spiele, die für 16 Bit optimiert sind (beispielsweise Thief 2), sehen mit 32 Bit Rendering kaum besser aus. Zudem ist das auch noch API-abhängig: Unreal sieht toll aus mit 16 Bit - wenn man Glide hat - und ziemlich schäbig mit der Direct3D API. Die meisten heutigen Spiele sind aber auf einen 32 Bit Framebuffer wirklich angewiesen.

Tatsächlich vergleichen wir 16 Bit Farbe mit 24 Bit Farbe. 16 Bit Framebuffer heißt, RGBA 5 6 5 0, während 32 bit RGBA 8 8 8 8 bedeutet. Somit haben wir jetzt noch 8 Bit "Destination Alpha" für einige (selten genutzte) Spezialeffekte.

Nun, die GeForce 6800 Ultra führt einen optionalen 64 Bit Floating Point Framebuffer ein. Das ist dann RGBA FP16 FP16 FP16 FP16. Den größeren Darstellungs-Bereich verglichen mit FX8 besprachen wir schon. Während nVidia von "high dynamic range" (HDR) spricht, ist es tatsächlich medium dynamic range (MDR). HDR braucht mindestens 32 Bit für jeden einzelnen Wert, NV40 bietet 16. Trotzdem ist FP16 ein großer Sprung nach vorne. Der Hauptvorteil: Man muss nicht mehr in FP-Texturen rendern, wenn man MDR-Rendering betreibt. Einfach den FP16-Framebuffer aktiveren und man bekommt ein akzeptables MDR Render-Target. Der NV40 unterstützt mit seinem 64 Bit Framebuffer auch alle Alphablending-Funktionen.

Natürlich werden auch herkömmliche 32 und sogar 16 Bit Framebuffer noch unterstützt. Für die Fixpoint-Blending-Operationen wird kaum zusätzliche Logik gebraucht. Da FP16 eine Mantisse von 10 Bit nutzt, kann eine leicht modifizierte FP16-Logik auch FX8-Rechnungen bewerkstelligen. (Weil es in jedem üblichen FP-Format ein implizites Bit gibt, hat man 10 + 1 = 11 Bit Präzision bei FP16.)

Aber es gibt auch Nachteile: Mit einem 64 Bit Framebuffer wird kein Multisampling-Antialiasing unterstützt. Der Grund ist in der begrenzten Bandbreite zu suchen. FP64 für sich (ohne Antialiasing) müsste schon langsam genug sein, aber wir konnten hier noch keine Demos sehen; vielleicht überrascht uns nVidia ja.


   Ein Blick auf den verbesserten RAMDAC

Der RAMDAC erzeugt das Signal für den Monitor und liest dafür den Framebuffer aus. Einer unserer neueren Artikel behandelt die RAMDAC-Geschichte genauer. Wie die Vorgänger-Boards von NV nutzt der RAMDAC weiterhin eine 10 Bit Gamma-Ramp. (Das verhindert Color-Banding wenn man 8 Bit für jeden Kanal hat.) Da NV40 nun auch FP16 pro Kanal anbietet, wäre mindestens eine 11-Bit-Gamma-Ramp wünschenswert. Wir hielten auch eine 12 Bit Tabelle für nicht übertrieben. (Windows unterstützt bis zu 16 Bit.)

Der neue RAMDAC kann jetzt auch Tone-Mapping applizieren. Mit dieser Technik wird der Bildinhalt modifiziert, um es in den darstellbaren 0-bis-1 Bereich zu übertragen. Tone-Mapping via RAMDAC spart sowohl Füllrate als auch Bandbreite. Wir wissen noch nicht, wie ausgereift das neue RAMDAC-Mapping ist. Es gäbe eine handvoll netter Effekte, zum Beispiel mit der Belichtungszeit (resp. Kameraöffnung) zu spielen, wir werden abwarten müssen, ob der RAMDAC des NV40 wirklich die Pixelshader entlasten kann. Normalerweise würde Tone-Mapping nämlich mit Shader-Programmen gemacht.


   "Adaptive" trilineare Filterung

Hier kann man sich kurz fassen: Es lässt sich abstellen. Damit sind wir hochzufrieden. Möchte man volle trilinare Qualität, stellt man die Optimierung ab. Ist man weniger empfindlich gegenüber "brilinearer" Filterung und hätte lieber bessere Performance, aktiviert man es. Jeder hat die Wahl - the way it's meant to be configured.

Leider, leider wurde die isotrope Filterqualität gesenkt. ("Isotroper Filter" heißt Texturierung ohne anisotrope Verbesserungen.)


So sollte isotrope Filterung aussehen.


GeForce 6800 Ultra : Im Winkel von 45° wird weniger isotrope Qualität geboten, als möglich.

Wir haben die schwarzen Linien eingefügt, um zu zeigen, aus welchen Teilen das isotrope 360°-MIP-Muster jeweils besteht.


   Mangelhafte anisotrope Qualität

2x AF sieht ähnlich aus wie das isotrope Muster, aber um ein MIP-map level verschoben. (Abgesehen von der verringerten Qualität in 45°-Nähe, bringt 2x AF volle Anisotropie.) Mit 4x AF und höher erhalten aber nur noch volle 90° und 45°-Winkel den vollen AF-Grad. 22,5° und 67,5° bleiben auf 2x AF limitiert. Dies erinnert an das AF vom R300, wobei es jedoch nicht genau das gleiche ist.

Offen gesagt waren wir völlig geschockt, als wir die neue anisotrope Filterung mit eigenen Augen sahen. Obwohl es ein klein wenig besser ist als das, was aktuelle Radeons anbieten, liefert die 6800 Ultra verglichen mit bisherigen GeForce-Chipsätzen grauenhafte anisotrop gefilterte Texturen.

AF-Qualität war immer ein großer Kritikpunkt an ATIs Chips. Wir sind schlicht entsetzt, dass nVidia jetzt Textur-Qualität für etwas Performance opfert. Solche "Optimierungen" sollten immer optional für den User sein. (Tatsächlich aber liefert solche ATI-mäßige Winkelabhängigkeit immer die geringere Gesamt-Qualität für eine gegebene Füllratenleistung.) Wir sehen keinen Zweck darin, solcherlei "Optimierungen" in Highend-Karten wie der GeForce 6800 Ultra zu nutzen.

AF-Benchmarks sollten nicht mit bisherigen GeForce-Karten verglichen werden. Das wäre genauso sinnlos wie AF-Benchmarkvergleiche zwischen Radeon und bisherigen GeForce-Karten.

Für Liebhaber von bester Texturqualität war GeForce immer die erste Wahl. Diese Zeiten sind vorbei.






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

Shortcuts
nach oben