Anti-Aliasing im Test: Faltenkuren von ATi und Nvidia im Vergleich

 3/18
Wolfgang Andermahr
179 Kommentare

Nvidia-Grafikkarten

Bezüglich MSAA gibt es auf einer Nvidia-Karte zu ATi keinerlei allzu großen Unterschiede. Im Angebot haben die Kalifornier ebenfalls 2xAA, 4xAA sowie 8xAA, wobei man bei 8xAA etwas vorsichtig sein muss. Denn es steckt hinter der Bezeichnung „8xAA“ nicht acht-faches Anti-Aliasing, sondern ein „Coverage Sampling AA“ – später dazu mehr. Für richtiges 8xMSAA muss man stattdessen „8xQ“ im Treiber auswählen. Die Sample-Muster sind bis zu 4xAA etwas anders gedreht als bei ATi, weswegen – je nach Winkel – ein mal besseres und mal schlechteres Ergebnis entsteht. Bei 8xAA gilt dasselbe, wobei die Anordnung (Sparse-Grid) sichtbar verschieden zu einer ATi-Karte ist.

Gegen die Alpha-Test-Texturen hat Nvidia ebenfalls einen entsprechenden Algorithmus im Programm, wobei er glücklicherweise deutlich besser im zu kontrollieren ist als bei ATi. So ist hier mit der Auswahl TMSAA (Transparency Multi-Sampling) beziehungsweise TSSAA (Transparency Super-Sampling) tatsächlich klar, welche Art der Glättung man erhält. TSSAA erzielt dabei ohne Zweifel die besten Ergebnisse, arbeitet dafür aber am langsamsten. Die Anzahl der „Transparenz-Samples“ ist identisch mit der der normalen Geometrie-Samples.

Nvidia AA-Einstellungen
Nvidia AA-Einstellungen

Offiziell bietet Nvidia darüber hinaus noch das Coverage-Sampling-AA (CSAA) an. Qualitativ ist dieses aber nicht besser als normales MSAA mit derselben Anzahl an Samples. Stattdessen soll CSAA eine weitaus bessere Performance bei nur leicht geringerer Qualität bieten. Als Modi stehen einem neben den MSAA-Varianten zusätzlich ein 8-fach- sowie zwei 16-fach-Anti-Aliasing-Modi zur Verfügung.

CSAA nutzt eine andere Verteilung der Farb- beziehungsweise Z-Samples (Tiefentests, Sichtbarkeit) und der so genannten Coverage-Samples. Beim CSAA untersuchen zusätzliche AA-Samples in einem Sub-Pixel, ob die CS-Samples auf zusätzliche Dreiecke treffen. Falls ja, werden die Coverage-Samples als zusätzliche Glättung genutzt, ansonsten werden sie verworfen. CSAA funktioniert jedoch nicht immer. In 3D-Applikationen, in denen Stencil-Schatten eingesetzt werden, hat CSAA keine Wirkung und es wird auf 4xMSAA oder 8xMSAA zurück geschaltet.

8xAA sowie 16xAA basieren auf 4xMSAA. So gibt es immer noch vier Farb/Z-Samples, aber je Modi acht oder gleich 16 Coverage-Samples. 16xQ basiert dagegen auf 8xMSAA. Die Anzahl der Coverage-Samples liegt also immer noch bei 16, es werden aber acht Farb/Z-Samples verwendet. Kombiniert man CSAA mit TMSAA/TSSAA, dann entspricht die Anzahl der Textur-Samples denen der Farb/Z-Samples.

Darüber hinaus gibt es auf den Nvidia-Karten, wenn auch nur inoffiziell, noch das Super-Sampling-AA (SSAA) sowie eine Kombination aus SSAA und MSAA. Nvidia hat die Modi offiziell zwar schon länger eingestellt, inoffiziell Leben sie aber munter weiter. Da man das SSAA im Control Panel nicht mehr findet, muss man auf externe Tools wie den nHancer zurück greifen. Dort kann man SSAA bequem aktivieren.

Nvidia AA-Einstellungen
Nvidia AA-Einstellungen

Anders als MSAA bearbeitet SSAA nicht nur die Geometrie, sondern ebenfalls die Texturen. Das hat den Vorteil, dass das aufgrund eines minderwertigen Texturfilters oder einer zu hochfrequenten Textur entstehende Texturflimmern mit SSAA vermindert werden kann. Man darf aber nicht vergessen, das SSAA mehr oder weniger die „Holzhammermethode“ ist und sicherlich kein Allheilmittel. Denn die Performancekosten von SSAA sind immens – weitaus höher als bei MSAA. Stattdessen liegt es eher an den GPU-Herstellern, flimmerfreie Texturfilter zu entwickeln sowie den Spieleherstellern, ordentliche, flimmerfreie Texturen zu nutzen.

Grob gesagt wird beim SSAA das gesamte Bild intern mit einer höheren Auflösung berechnet und dann wieder auf die gewünschte Auflösung herunter skaliert (Downsampling) und ausgegeben. Wenn man bei der Auflösung 1280x1024 2x2SSAA aktiviert (X-/Y-Achse), wird das Bild intern also mit 2560x2048 berechnet. Für das Downsampling setzt man auf einen bilinearen Filter, wobei das Ergebnis aber nicht der „richtigen“ Auflösung entspricht. Diese ist also vorzuziehen.

Abgesehen vom durch das reduzierte Flimmern entstandenen und nun ruhigeren Bild hat SSAA noch einen weiteren Vorteil: Nutzt man zum Beispiel eine 16-fache anisotrope Filterung sowie 2x2-faches SSAA, wird das Bild auf der X- und Y-Achse – wie bereits erwähnt – intern mit der doppelten Auflösung berechnet. Dadurch entsteht auch ein AF-ähnlicher Effekt, wodurch die Texturfilterung in etwa 32xAF entspricht.

Nvidia AA-Einstellungen

Als reine SSAA-Algorithmen stehen einem 1x2, 2x1, 2x2, 3x3 sowie 4x4 zur Auswahl. Während 1x2 (2x1 hat dieselbe Wirkung auf der anderen Achse, ist aufgrund der in Spielen genutzten Geometrie aber weniger zu empfehlen) und 2x2 SSAA in den meisten einigermaßen aktuellen Spielen in einer moderaten Auflösung prinzipiell noch spielbar sind (eine High-End-Grafikkarte mit viel Speicher ist aber Voraussetzung), wird es bei 3x3 SSAA schon deutlich schwieriger. 4x4 SSAA läuft eigentlich nie flüssig, 3x3 SSAA nur selten. Reines SSAA funktioniert einzig unter Direct3D.

Alternativ gibt es noch Hybrid-Modi, die SSAA mit MSAA kombinieren, um eine bessere Performance bei einer ähnlich guten Bildqualität zu erhalten. 4xS bietet dabei 1x2 SSAA kombiniert mit 2xMSAA. 8xS sieht mit 1x2 SSAA und 4xMSAA schon ein gutes Stück besser aus. 8xSQ ist 2x2 SSAA inklusive 2xMSAA. 16xS verwendet erneut 2x2 SSAA, aber mit 4xMSAA, während 32xS 2x2 SSAA mit 8xMSAA kombiniert.

25 Jahre ComputerBase!
Im Podcast erinnern sich Frank, Steffen und Jan daran, wie im Jahr 1999 alles begann.