Zum 3DCenter Forum
Inhalt




Anti-Aliasing im Detail

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



  Das Supersampling-Verfahren
  (Die älteste Methode unter der Lupe)

Das Problem der eingangs präsentierten Sinuswelle war ja, dass die Samplingrate leider nicht ausreichte, das Signal zu erfassen. Naheliegend wäre nun, einfach die Samplingrate zu erhöhen:

Wenn man die Samplingrate erhöht, wird das Signal besser erfasst.
Wenn man die Samplingrate erhöht, wird das Signal besser erfasst.

Das abgetastete Signal reisst zwar noch immer nicht zu Begeisterungsstürmen hin. Aber wenigstens wurden die wichtigsten Charakeristika diesmal nicht übergangen.

Diese Steigerung der Samplingrate kann man dann auch auf das Pixelraster übertragen: Wir verdoppeln in diesem Beispiel einfach auf beiden Achsen die Auflösung. Dazu müssen die Geometrie-Daten natürlich ebenfalls angepasst werden. Für unser Beispiel sähe das dann so aus:



Lösungsansatz: Auflösung und damit Samplerate erhöhen.
Mouseover: Das gleiche Bild in ursprünglicher Auflösung.
Klick: Beide Bilder zusammen.

Was wurde nun wirklich erreicht? Da die neuen Pixel kleiner sind, sind auch die Aliasing-Effekte kleiner. Dieser Weg ist allerdings nicht unbegrenzt gangbar. Geht man von einer Ausgangs-Auflösung von 1024x768 aus, so müsste der Monitor nun schon mit 2048x1536 laufen. Das überfordert die meisten Geräte. Man kann sich behelfen, in dem die neue Auflösung wieder herunter gerechnet wird. Dazu wird praktischerweise der bilineare Filter genutzt. Man ordnet die zu filternen Pixelpositionen geschickt an, und das ergibt folgendes Resultat:



Ein Beispiel für 2x2 Supersampling.
Mouseover: Optimales Anti-Aliasing.
Klick: Beide Bilder zusammen.

Wie man sieht, ist diese Methode nicht allzu nahe an der optimalen Darstellung. So erscheint die Linie etwas verschoben. Der gleiche Effekt der scheinbar verschobenen Geometrie ist auch auf den beiden Beispielen der ersten Seite zu sehen.

Doch: Das Bild ist gegenüber der Version ohne Anti-Aliasing deutlich besser. Immerhin floss dabei die vierfache Informations-Menge ein. Diese wird zwar durch das Herunterrechnen wieder geglättet, dennoch enthält das Bild mit Anti-Aliasing mehr Informationen als das Bild ohne Anti-Aliasing. Denn ohne zusätzliche Bild-Information kann prinzipiell kein besseres Bild erzeugt werden.

Diese Methode war die zeitlich erste, die es auf dem Anwendermarkt für 3D-Grafikkarten gab. 3dfx´ Marketing-Strategie war im Jahre 1999 ganz darauf ausgerichtet, dem Endkunden die Vorteile von Anti-Aliasing schmackhaft zu machen. Die Entwicklung des entsprechenden Chips (VSA-100 für Voodoo 4/5) zog sich allerdings sehr in die Länge.

So fügte nVidia in ihre Referenz-Treiber die hier besprochene Methode des Anti-Aliasings ein. Sie boten sogar noch zusätzliche Optionen: Neben der hier besprochenen 2x2-Variante gab es ein 1x2 und ein 1.5x1.5-Verfahren. In welche Richtung soll das 1x2-Raster angewendet werden? Der übliche Monitor stellt das Bild in Zeilen dar. Von links nach rechts laufen die Pixel eher ineinander über, als von oben nach unten. Um das auszugleichen, wird beim 1x2 FSAA meistens in Y-Richtung gefiltert.

Dieses Supersampling, in der Regel 2x2, wurde später auch bei den DirectX7 Radeon-Karten und bei KYRO-basierenden Karten angewandt. Dabei kämpfen alle diese Lösungen mit bestimmten Problemen, die sich aus der Skalierung ergeben. Das betrifft in der Regel 2D-Objekte.

Eine 3x3 oder gar 4x4 Methode ist analog zu 2x2 umzusetzen, einige Treiber unterstützen das sogar. Aus Leistungsgründen hat es aber schon 2x2 sehr schwer.

Eine gewisse Ausnahme bilden hier die KYRO-Karten. Durch ihre besondere Architektur arbeiten sie praktisch nie am Füllratenlimit (das galt jedenfalls jeweils zum Zeitpunkt, als die Karten auf den Markt kamen). Damit wirken sich hohe Auflösungen oder Supersampling weniger auf die Endleistung aus. Zumindest zu ihrem Erscheinen waren sie prinzipiell CPU-limitiert, weshalb man mit Kantenglättung die Performance nicht allzu stark beeinträchtigte.

Anstatt jedes Pixel nur einmal abzutasten, wird das beim Supersampling mehrfach gemacht. Die neuen Samplepositionen stehen dabei für so genannte Subpixel. Das Ergebnis wird anschließend wieder heruntergerechnet (Downsampling).

Dieses Downsampling verdient (nachfolgend) einer genaueren Betrachtung.






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

Shortcuts
nach oben