Wie funktioniert Supersampling Anti-Aliasing?

1989
RJSmith92

Durch das Online-Lesen verstehe ich die Grundidee, wie Supersampling Anti-Aliasing funktioniert. Es rendert die Szene mit einer höheren Auflösung als die Anzeige des Benutzers, verwendet die zusätzlichen Pixel, um einen Durchschnitt zu berechnen und sie dann herunterzu berechnen.

Ich verstehe nicht ganz, wie das in der Praxis funktioniert. Wenn sich zum Beispiel ein rotes Pixel einer Wand neben einem blauen Pixel eines Himmels befindet und die Szene x2 SSAA gerendert wird, besteht das rote Pixel nicht nur aus vier roten Pixeln und dem blauen Himmel aus Pixel Hilft dies bei der Berechnung eines Durchschnitts.

Sind die vier neuen roten Pixel mit dem Originalbild überlagert, so würden Sie eine Mischung aus roten und blauen Pixeln erhalten und in der Lage sein, einen Durchschnitt zu berechnen, um den Übergang zwischen Wand und Himmel zu erleichtern.

Jede Hilfe wäre dankbar.

0
Selbstverständlich wäre das Ergebnis dasselbe, wenn man nur auf- und abwärts skaliert, aber eine höhere Textur wird geladen, dh: das rote Pixel * eigentlich *, * in High-Res * sind 4 verschiedene Farben von Rot und somit eine andere Ergebnis wird erreicht. larkey vor 8 Jahren 0

2 Antworten auf die Frage

2
David Schwartz

Es hilft sehr. In Ihrem ursprünglichen Beispiel:

... Rot Rot Rot Blau Blau Blau ...

Die Grenze zwischen Rot und Blau sieht aus wie ein Treppenhaus

Im überabgetasteten Bild

... Rot Rot Rot Rot Blau Blau Blau ...

Wie wir herunterrechnen

... Rot] [Rot ​​Rot] [Rot ​​Blau] [Blau Blau] [Blau ...

Jetzt haben wir ein Pixel, aus dem Rot und Blau zusammen gemittelt werden, und verwischt die Grenze zwischen den roten und blauen Bereichen.

Wenn Sie sich eine diagonale Grenze zwischen zwei Regionen vorstellen, rot und blau, werden bei der Überabtastung an den Stufen der Treppenstufen Zwischenpixel eingefügt, da viele der 2x2-Felder notwendigerweise rote und blaue Pixel enthalten.

Hallo @David, danke für die Antwort. Ich muss ein Idiot sein, weil ich das immer noch nicht ganz verstehe. Wenn das Pixel auf das Vierfache seiner Größe (mit 2x SMAA) hochskaliert wird, sind die 3 anderen Pixel in der neuen 2x2-Ebene alle die gleiche Farbe wie das ursprüngliche Pixel? RJSmith92 vor 8 Jahren 0
@ RJSmith92 Das Pixel ist nicht hochskaliert. Es erfolgt nur eine Herunterskalierung. Betrachten Sie eine diagonale Linie, überlagern Sie 2x2 Kästchen, es muss der Fall sein, dass einige Kästchen Pixel auf beiden Seiten der Linie enthalten. David Schwartz vor 8 Jahren 0
Danke @David, das macht mehr Sinn. Wenn Sie online schauen, sagen alle Erklärungen, dass das Bild mit einer höheren Auflösung gerendert wird. Ich bin nicht ganz sicher, wie das mit dem beschriebenen Prozess zusammenhängt. RJSmith92 vor 8 Jahren 0
Recht. Das Bild wird mit einer höheren Auflösung gerendert und dann verkleinert. Es gibt kein Upscaling. David Schwartz vor 8 Jahren 0
OK, also wird ein Pixel durch vier Pixel dargestellt, wenn das Bild mit einer höheren Auflösung (mit x2) gerendert wird. Die durchschnittliche Farbe dieser vier Pixel wird berechnet und dann für das eine Pixel verwendet, wenn es verkleinert wird. RJSmith92 vor 8 Jahren 0
Ja. Das ist es. David Schwartz vor 8 Jahren 0
2
Psycogeek

Ok, ich werde es versuchen und erkläre es, weil ich solche Methoden zuvor bei der Arbeit mit Fotos angewendet habe, um einige der "Glättungs" -Algorithmen auf Fotos oder Fotos mit niedriger Auflösung anzuwenden, ohne eine sehr breite Tiefenglättung zu erhalten.

es geht so etwas.

Hier sind Ihre Pixel in der üblichen Auflösung, in der Sie sich befinden würden. In extremer Weise müssen Sie das Aliasing oder die Unebenheiten glätten.
Aliasing

Auf einer Seite haben wir hier das Bild auf 4X hochskaliert und dann denselben Anti-Aliasing-Algorithmus angewendet hoch und Tief

Es ist wichtig anzumerken, dass ich als dummer Computer nicht einfach das Schwarze zum Weiß biegen kann (die Menge an Weiß wird geändert), sondern auch das Weiße zum Schwarz biegen muss (die Gleichung ausbalancieren :-). Ich wende eine mathematische Matrix blind darauf an, wo ich sie anwenden soll. Obwohl die Grafikkarten-Algorithmen sehr ausgefeilt sind und eigentlich nicht so blind sind.

Ein bemerkenswertes Beispiel für das Gleichgewicht in Spielen: Sie möchten nicht, dass Ihr Zaun im Himmel verschwindet, und Sie möchten nicht, dass Ihr Himmel zum Zaun wird. Daher müssen Anpassungen sowohl für Himmelspixel als auch für Zaunpixel gleichmäßiger angewendet werden. Ein Beispiel dafür, wie die Grafikkarten und Game-Engines dieses Gleichgewicht stören, um mit diesen harten Details ein bestes Bild zu erhalten.

Irgendwann muss das alles wieder auf die Displayauflösung zurückgehen, wo es die niedrigere Auflösung sein wird, und nachdem eine Vielzahl von Elementen angepasst werden muss, werden diese zusätzlichen Pixel nun perfekt in weniger Pixel gemischt.
(Nun, es war nicht die perfekte Farbe für diese Mischung, aber ich habe die Rechnung nicht gemacht.) Zurück zu niedriger Auflösung Und wie Sie sehen, sieht es in den Displayres wieder schrecklich aus.

Auf der niedrigen Auflösung haben wir diesen großen Bereich, in dem wir alle diese Pixel (sowohl die schwarzen als auch die weißen) zueinander neigen und ein großes Glättungsfeld haben, da wir nur mit einer niedrigen Auflösung arbeiten.

Auf unserer High Res-Seite haben wir stattdessen einen perfekt ausbalancierten Satz von Pixeln erhalten, die 4X Pixel miteinander vermischen, wodurch der Glättungsbereich kleiner wird. Die hochauflösende Seite findet die Pixel, die das alles glätten würden, wirklich hübsch, hinterlässt aber kein großes Durcheinander.

Weil (wieder) wir mehr Pixel biegen müssen, um das Gleichgewicht zwischen den einzelnen Blends zu erhalten. Wenn wir zuerst skaliert werden, können wir dieses Bending Blending in einem kleineren Maßstab erstellen und trotzdem das Gleichgewicht zwischen den Biegungen beibehalten, und das Endergebnis sind weniger betroffene Pixel, die gleiche Jaggie versteckt sich.

Wenn Sie die zwei Methoden nebeneinander mit Spielen vergleichen, ist der Unterschied, der mit einer Menge zusätzlicher Arbeit erreicht wird, nicht sehr groß. Das Gleiche gilt, wenn ich Fotos bearbeite, die wieder mit niedrigerer Auflösung verwendet werden. Dies ist eine große Anstrengung für mich und die Maschine und die Ergebnisse sind kaum besser.