Zum 3DCenter Forum
Inhalt




Anti-Aliasing im Detail

24. Februar 2002 / von aths / Seite 13 von 18



  Warum bestimmte Muster besser sind
  (Eine Zwischenbemerkung)

Es ist hier zweckmäßig, noch einmal auf die Funktionsweise von Anti-Aliasing einzugehen. Jenes kann mit heutiger Hardware ja leider nicht korrekt durchgeführt werden. Ein bestmöglicher, korrekter Farbwert für jeden Pixel existiert zwar, dieser ist jedoch sehr schwer zu berechnen. Mit heutiger Hardware sind demzufolge nur Näherungen möglich.

Ohne Kantenglättung findet eine Abtastung pro Pixel statt. In den meisten Fällen kommt das Polygon zum Zuge, welches die größte Fläche in diesem Pixel einnimmt. Werden nun mehrere Abtastungen pro Pixel vorgenommen, und deren Werte gemittelt, kann das Ergebnis auf keinen Fall schlechter ausfallen. Je mehr Samplepositionen für jedes Pixel genutzt werden, desto mehr nähert sich das Ergebnis dem korrekten Wert an. Dabei ist aber nicht nur die Zahl der Subpixel entscheidend. Bekanntlich läuft herkömmliches Supersampling auf folgendes Muster hinaus:

Das bekannte Muster beim 2x2 Supersampling.
Das bekannte Muster beim 2x2 Supersampling.

Die PoverVR Series 3 (KYRO, KYRO II) erreicht das übrigens, indem für beide Achsen getrennt die interne Auflösung verdoppelt werden kann. 2x FSAA ist also sowohl in Y- als auch in X-Richtung möglich. Aktiviert man die Verdopplung für beide Achsen, wird 4x FSAA erreicht.

Es fließen in jedes Pixel 4 Subpixel ein, was gut ist. Betrachtet man die Lage, fällt auf, dass je 2 Subpixel direkt über- oder nebeneinander liegen - was schlecht ist. Warum?

Bekanntlich sind sehr horizontale und sehr vertikale Kanten besonders störend. Bei einer horizontalen Kante ändert sich der Y-Wert pro Pixel so gut wie gar nicht. Die Kantenglättung ist hier um so besser, je mehr verschiedene Y-Werte abgetastet werden. Es werden bei diesem Muster aber nur je zwei unterschiedliche Positionen auf der Y-Achse erfasst. Bei einem gedrehten Raster ist das anders:

Ein denkbares Muster bei 4x rotated grid Anti-Aliasing.
Ein denkbares Muster bei 4x rotated grid Anti-Aliasing.

Hier hat jedes der 4 Subpixel einen eigenen Y-Wert. Mit 4 unterschiedlichen Abtast-Positionen können kleine Unterschiede besser erfasst werden als mit nur deren 2. Deshalb liefert das rotierte Raster eine besonders gute Kantenglättung gerade bei den schwierigen Fällen, nämlich der "ungefähr 90°-Winkel".

Um eine klare Sprache zu sprechen: Durch einen guten Drehwinkel wird bei diesen Kanten etwa die Qualität von 4x4 ordered grid Supersampling erreicht. Statt 16 Subpixel reichen dank der intelligenten Anordnung deren 4 aus. Ein gedrehtes Raster erhöht die Qualität drastisch. Deshalb darf das 4x FSAA der Voodoo5 nicht mit der 2x2 Version der GeForce verglichen werden - die Bildqualität ist zu weit auseinander.

Es ist nicht ganz leicht, den optimalen Drehwinkel zu bestimmen. Wie im Bild zu sehen, sind die Samplepositionen nun je nach Lage unterschiedlich weit voneinander entfernt. Das hat den Nachteil, dass die Abtastung nun auch größere "Löcher" aufweist und etwas übersehen kann. Der Vorteil besteht unter anderem darin, dass dank der Unregelmäßigkeiten die Bildung von Moiré-Mustern reduziert wird: Unregelmäßige Abtastung erschwert das Auftreten von regelmäßigen Mustern. Um den Nachteil der größeren "Löcher" auszugleichen, sollten bei unregelmäßiger Abtastung möglichst viele Subpixel zum Einsatz kommen.

Unregelmäßige Abtastung bringt sowohl Vor- als auch Nachteile. Je mehr Subpixel erzeugt werden, um so kleiner werden die Nachteile.

Das Dilemma wird deutlich, wenn man versucht, die Subpixel so anzuordnen:

Ein anderes denkbares Muster bei 4x rotated grid Anti-Aliasing.
Ein anderes denkbares Muster bei 4x rotated grid Anti-Aliasing.

Hier wird auf beiden Achsen so gleichmäßig wie möglich abgetastet. Für spezielle Fälle ist das sehr gut. Leider wird dies wieder durch ziemlich große "Löcher" im Raster erkauft: Jeweils an den Pixel-Mitten und Ecken gibt es "Löcher". Dafür liegen an den Kanten die Subpixel um so dichter. Doch ein Garant für gleichmäßig gute Qualität bei allen (störenden) Kanten ist diese Eigenschaft nicht. Offenbar ist selbst ein gedrehtes Raster noch nicht optimal.

Die Abtast-"Löcher" verdienen eine nähere Betrachtung:

Ordered Grid - mit sehr engen Subpixeln.
Ordered Grid - mit sehr engen Subpixeln.

Man sieht sofort, dass hier fast kein Anti-Aliasing durchgeführt wird. Denn die 4 Subpixel sind zu wenig voneinander entfernt, um vernünftige Farb-Unterschiede aufweisen zu können. Die Mittelwertbildung von fast gleichen Werten bringt fast nichts, die Glättung ist also untertrieben. Nun das Gegenteil:

Ordered Grid - mit weit entfernten Subpixeln.
Ordered Grid - mit weit entfernten Subpixeln.

Diesesmal wurde in die andere Richtung übertrieben. Die Subpixel unterscheiden sich vom Farbwert her ziemlich stark - das gilt aber nur innerhalb des Pixels. Sie gleichen sich jeweils ziemlich stark mit gleich drei Subpixeln von den jeweils benachbarten Pixeln. Damit überwiegt die Mittelwertbildung und die Glättung ist übertrieben.

Es zahlt sich also aus, wenn man versucht, die Samplepositionen möglichst gleich weit voneinander entfernt zu setzen. Das widerspricht allerdings der Forderung nach ungleichmäßiger Abtastung. Dieser Zielkonflikt ist zu berücksichtigen.






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

Shortcuts
nach oben