Multisampling Anti-Aliasing unter der Lupe
22. Mai 2003 / von aths / Seite 4 von 8
Was hat man nun davon? - Warum Multisampling schneller ist
Die Anti-Aliasing-Qualität der GeForce3 war keinesfalls Weg weisend, diese Rolle gebührt ehrlicherweise Voodoo5. Der große Vorteil auf Seiten der GeForce3 war aber Geschwindigkeit. Die Qualitäts-Frage schieben wir noch auf, und wenden uns der Geschwindigkeit zu. Das ist nämlich der große Vorteil beim Multisampling Anti-Aliasing.
Die GeForce3 spart es sich, für jedes Subpixel einen eigenen Texturwert zu berechnen. Das schont Füllrate und Bandbreite. Nun wird die Karte füllratenmäßig allerdings mehr entlastet als bandbreitenseitig. Denn an Bandbreite wird vor allem Textursampling-Bandbreite gespart, gesampelt wird aber sowieso aus dem Cache. Und wenn auch nur ein mal pro Pixel gesampelt wird, so ist der Farbwert dann doch nach wie vor für jedes einzelne Subpixel zu speichern.
Was den Z-Test angeht, so wird dieser natürlich pro Pixel für alle Subpixel gleichzeitig ausgeführt. Nun ist etwas Konzentration erforderlich: Der mit dem Anti-Aliasing zusätzlich erforderliche Aufwand an Z-Füllrate wird gleich wieder gespart, aber die Z-Bandbreite ist zunächst mal genauso hoch.
Daraus resultiert, dass 4x Anti-Aliasing recht langsam wird, einfach weil nun die Speicherbandbreite trotz gewisser Einsparungen durch Multisampling limitiert. Die im Vergleich zur Konkurrenz hohe Anti-Aliasing-Geschwindigkeit ist auch zu einem großen Teil der sehr hohen Rohleistung zuzuschreiben. In Dingen theoretischer Pixelfüllrate von einer GeForce2 Ultra übertroffen, spielt die GeForce3 im 32-Bit-Modus ihre wahren Stärken aus und wies alle bis dahin erhältlichen Gamer-3D-Karten in die Schranken.Im Gegensatz zur GeForce2 kann die GeForce3 ihre 4x2-Architektur auch im 32-Bit-Modus ausnutzen, diese gewonnene Leistung wirkt sich natürlich auch auf die Anti-Aliasing-Leistung aus. Multisampling-Technologie ist nur ein Baustein für hohe Geschwindigkeit mit aktiviertem Anti-Aliasing. Ein weiterer wichtiger Baustein betrifft den Umgang mit der erwähnten Z-Bandbreite, von der für Anti-Aliasing jede Menge gebraucht wird. GeForce-Karten ab GeForce3 beherrschen Z-Komprimierung, was die Geschwindigkeit allgemein erhöht, und sich beim Multisampling Anti-Aliasing natürlich erst recht bezahlt macht. Fehlende bzw. deaktivierte Z-Compression würde nicht nur die allgemeine Geschwindigkeit senken, sondern erst recht die Leistung beim Anti-Aliasing drücken.
Zahlenwerte wollen wir nicht schuldig bleiben. Wir haben den Villagemark in 1400x1050x32 auf einer GeForce4 getestet, welche mit 300/350 MHz (Core, RAM) taktet.
MSAA-Performance
Die Tabelle zeigt zwei Fakten: Erstens, MSAA alleine reicht für attraktive Anti-Aliasing-Geschwindigkeit nicht aus. Zweitens, bei 4x MSAA zeigt Z-Komprimierung mehr Wirkung, als Early Z, was besonders bemerkenswert ist, da bei unserer GeForce4 der RAM übertaktet wurde, wodurch die verfügbare Speicherbandbreite steigt. Trotzdem wirkt sich das Z-Compression Feature zum Sparen von Bandbreite so krass aus. Ohne Anti-Aliasing bringt Z-Komprimierung gerade mal 3% Geschwindigkeit, mit 2x MSAA schon 9%, und bei 4x MSAA beträgt der Unterschied 13%. Je nach Benchmark skalieren die Ergebnisse anders, aber die Tendenz ist eindeutig: Z-Compression ist für schnelles MSAA entscheidend. Die FX 5200 verfügt nicht über Z-Compression, und ist deshalb keine empfehlenswerte Karte für Anti-Aliasing.
Unterschiede HRAA und AccuView: Was wurde für GeForce4 Ti verbessert?
Anti-Aliasing und Aniostropic Filtering werden seit GeForce4 unter einem jeweils gemeinsamen Begriff vermarktet: AccuView heißt es bei GeForce4, Intellisample bei GeForce FX und Intellisample HCT bei GeForce FX 5900. Was das Anti-Aliasing-Qualität angeht, wurde die AccuView-Technologie unverändert übernommen. AccuView selbst ging aus GeForce3-HRAA ("High Resolution Anti-Aliasing") hervor, wurde aber verbessert. Die Verbesserungen betreffen sowohl die Leistung, als auch die Qualität. Zunächst zum Qualitäts-Unterschied. GeForce3 hat etwas ungünstigere Subpixel-Positionen:
Links GeForce3, rechts GeForce4 Ti (und FX)
Dieses Schema zeigt die Position der Subpixel (rot), die Stelle die für die Koordinaten-Berechung für das Textur-Sample verwendet wird (blau) und die temporären Zeilen beim Triangle Setup (grün).
Warum sampeln GeForce4 und FX "besser" als GeForce3? Die durchschnittliche Entfernung des Subpixels zur Texel-Position (wo bekanntlich der eine Farbwert gesampelt wird, der für alle Subpixel gilt) ist hier geringer als bei GeForce3. Damit ist der durchschnittliche Farb-Fehler pro Subpixel kleiner. Zudem sind die Subpixel schön zentriert im Pixel und nicht nach links oben verschoben, die Geometrie-Abtastung ist einsichtiger.
Unterschiede gibt's aber auch in der Leistung. Der Early Z-Test, also das Verwerfen von verdeckten Pixeln, funktioniert auf GeForce3 leider nicht, solange MSAA aktiv ist. Deshalb sinkt schon mit 2x MSAA die Geschwindigkeit deutlich. GeForce4 Ti ziert sich generell, was Early Z angeht. Mit neueren Treibern können aber Tweak-Programme wie z.B. aTuner dieses Feature aktivieren, es funktioniert dann auch im Anti-Aliasing-Modus.
Es ist noch ein weiterer Unterschied vorhanden, der aber nur den 2x-Modus im 3D-Vollbild betrifft: Während GeForce3 grundsätzlich ein herkömmliches Downsampling vornimmt, wird ab GeForce4 erst beim RAMDAC-Scanout aus den Multisampling-Buffern gefiltert. Damit spart man die Schreibe/Lese-Bandbreite für den Downsampling-Buffer, diese Methode bringt jedoch nur dann Geschwindigkeit, wenn die Framerate nicht unter 1/3 der Monitor-Bildwiederholfrequenz sinkt. Der NV35 (GeForce FX 5900) wendet diese Methode auch bei 4x MSAA an. Der "Break even" ist hier bei 3/5 der Monitor-Bildwiederholfrequenz, doch woher nimmt der NV35 die Leistung für 4x MSAA?