Anti-Aliasing im Detail
24. Februar 2002 / von aths / Seite 16 von 18
Die Multisampling Neuauflage | |
(AccuView durchleuchtet) |
Bestimmte Profikarten für den OpenGL-Bereich bieten längst Anti-Aliasing-Verfahren, die jeden PC-Besitzer nur staunen lassen. So gibt es Produkte, die tatsächlich gewisse Bereiche mit vielen und andere nur mit wenigen Subpixeln auflösen. Consumer Hardware darf jedoch keine tausende Dollar bzw. €uro kosten und deshalb wird sowohl mit dem Silizium sparsam umgegangen, als auch mit den Entwicklungskosten.
Alle wichtigen Entwickler haben die Wichtigkeit von gutem Anti-Aliasing längst erkannt und bewerben ihre Methoden jeweils so, als sei ihnen damit der Durchbruch gelungen. Solche Aussagen sind vorsichtig zu bewerten, egal von wem sie stammen.
Aktuell konkurrieren zwei Verfahren: ATi bietet momentan die beste Qualität mit "Smoothvision", nVidia vermarktete ihr Anti-Aliasing seit der GeForce3 als "High Resolution Anti-Aliasing". Sie bieten nur Kantenglättung ohne zusätzliche Textur-Verbesserung, dafür aber exzellente Frameraten noch bei hohen Auflösungen.
Bei den GeForce4 Chips (obwohl die GeForce4 MX ein DirectX7-Chip und die GeForce4 Ti ein DirectX8-Chip ist und damit beide um einiges von ihren 3D-Kapazitäten entfernt sind, beherrschen beide dieselben AA-Arten) wurde das Anti-Aliasing wieder etwas geändert. Am wichtigsten ist, dass die Geschwindigkeit weiter zunahm. Denn es wird auf den entgültigen Framebuffer verzichtet, welcher das sichtbare Bild enthält. Dieses wird für jedes angezeigte Montor-Bild vom RAMDAC neu erstellt, wozu neu gefiltert werden muss. Diese Technik kam bereits im VSA-100 zum Einsatz. Zum Anti-Aliasing an sich, was wäre noch zu verbessern? Zur Erinnerung, wie die GeForce3 arbeitet:
GeForce3: Der Textur-Wert wird für die Pixelmitte bestimmt. |
Beim Multisampling wurde bislang nur die reine Kantenglättung betrachtet. Etwas anderes blieb außer acht: Die Bestimmung der Pixelfarbe. Es wurde angesprochen, dass man dazu am besten in der Pixelmitte sampelt. Das geschieht so auch bei der GeForce3. Dort fällt die Position eines Subpixels mit der Sample-Position zusammen. Die GeForce4 bringt jedoch hier ein Novum:
GeForce4: Die Sampleposition ist der Mittelwert aller Subpixel-Positionen. |
Die Sampleposition für die Textur stimmt nicht mehr mit irgendeiner Subpixel-Position überein! Es wird nach wie vor in der Pixelmitte gesampelt - wo sich nun aber kein Subpixel mehr befindet. Was bringt das für die Qualität?
GeForce3: Für ein Subpixel kommt die Textur-Farbe exakt hin. Die anderen drei sind mehr oder weniger weit entfernt. GeForce4: Der durchschnittliche Fehler ist gesunken und betrifft hier alle Subpixel gleichermaßen. Die Bildqualität ist bei der GeForce4 also etwas besser. Beim 2x-Verfahren wird der Fehler im Durchschnitt zwar nicht gesenkt, dafür wird er wieder auf beide Subpixel gleichmäßig verteilt. Somit werden nicht willkürliche Subpixel "bevorzugt". Es gibt außerdem Argumente dafür, die Abstände der Subpixel zur Texel-Sampleposition zur Fehlerrechnung zu quadrieren. Ohne diese Fehlerrechnung hier vorstellen zu wollen, steht fest, dass das 2x und 4x AccuView-Verfahren eine bessere Bildqualität als das HRAA der GeForce3 liefert.
In der Praxis zeigt sich allerdings, dass die Unterschiede nicht allzu sehr ins Gewicht fallen - genauer gesagt lässt sich anhand von Screenshots kein Qualitäts-Sieger küren. Nun die 2x-Variante in der Grafik:
Alte Technik, neuer Name: Aus HRAA wird AccuView. |
Die Subpixel sind besser in das Pixel verlagert. Vorteilhaft ist, dass das Bild nicht mehr wie früher um 1/4 Pixel verschoben gerendert wird.
Natürlich ist Quincunx auch bei der GeForce4 weiterhin mit von der Partie:
Das Quincunx-Muster überlappt nun eindeutig mehrere Pixel. |
Was ist hiervon zu halten? Zunächst das alte Quincunx-Verfahren:
GeForce3: Quincunx. |
Die Eck-Subpixel werden geringer gewichtet als der Mittelpunkt-Subpixel, dementsprechend zählt auch ihr Farbfehler weniger. Anders argumentiert: Beim GeForce3-Quincunx liegt 1 Subpixel innerhalb, 4 liegen am Rande des Pixels. Bei der GeForce4 liegen zwar 2 innerhalb und nur 3 außerhalb, diese sind jedoch weiter vom Pixel entfernt als früher. Innerhalb einer Textur liefern beide Verfahren das gleiche Bild. Wie sie sich bei der Kantenglättung schlagen, hängt von der Situation ab.
Der Quincunx-Postfilter frisst gegenüber 2x Multisampling praktisch keine Leistung mehr, was auf die Filter-Technik im RAMDAC zurück zu führen ist. Die Quincunx-Filterung wird nur um eine Bildschirm-Zeile verzögert, womit der Leistungs-Einbruch unter die Nachweisgrenze fällt. Die Geschwindigkeit des angeblich gegenüber 2x höher qualitativen Modus ist also sehr gut.
Doch mehr Qualität bedeutet eben, mehr Subpixel verwenden zu müssen - oder ein besseres Abtast-Raster. Die 4x-Variante nutzt weiterhin das geordnete Raster, eine bekanntermaßen sehr schlechte Methode. Um noch eine wenigstens etwas fortschrittlichere Variante anzubieten, wurde der "4xS"-Modus eingeführt:
Der "4xS" Modus. |
Es war nett anzusehen, wie viele WebSeiten anläßlich des GeForce4-Starts die verwirrende "Erklärung" aus dem White Paper abschrieben - anstatt gleich zu erwähnen, dass es sich um einen Modus handelt, welcher inoffiziell auch bei der GeForce3 zuschaltbar ist: 2x Multisampling mit 2x vertikal vergrößertem Backbuffer.
Abgesehen vom generellen Leistungseinbruch bei der 4x-Methode gegenüber 2x beansprucht dieser Modus bei normalen Auflösungen erstaunlich wenig Leistung. Das ist auch kein Wunder: Die Leistung wird wegen 2x Supersampling zunächst halbiert und dann gibt es noch den recht geringen Verlust durch 2x Multisampling.
So kann nVidia den qualitätsbewußten Nutzer wenigstens ein bisschen versöhnen: Ihre 4x Methode bringt zwar gegenüber 2x optisch kaum Vorteile. Der 4xS-Modus bringt jedoch bei annähernd horizontalen Kanten fast schon die gute Qualität des rotierten Rasters. Des weiteren wird in Y-Richtung dank Supersampling eine quasi anisotrope Texturfilterung vorgenommen. Damit werden Boden-Texturen spürbar verbessert. Letztendlich ein Kompromiss, mit dem auch anspruchsvolle Spieler leben können - wenn sie denn bereit sind, gut und gerne 60% der (ansonsten ohnehin übertriebenen) Framerate zu opfern.
Das Anti-Aliasing der GeForce4 (Ti und MX) ist der GeForce3-Methode sehr ähnlich, die größten Fortschritte wurden bei der Performance im 2x-Modus erzielt.
Zwei Fragen wären jetzt allerdings noch zu diskutieren ...