Hat das mehrfache Downsampling einen Vorteil?


14

Also bin ich auf diese Seite gestoßen und du kannst diese Zeilen im ersten und zweiten Absatz sehen:

Um einen groben, aber einfachen Effekt zu erzielen, zeichnen Sie die hellen Bereiche der Szene (z. B. Lichtquellen) in einen FBO und führen Sie dann mehrmals ein Downsampling mit der Minimierung GL_LINEAR durch . Kombinieren Sie für das endgültige Rendern einfach die Originalszene mit den heruntergerechneten FBOs.

Im folgenden Beispiel ist die ursprüngliche Szene 128 x 128 und wird dreimal heruntergerechnet . Dies erfordert 4 Framebuffer-Objekte . Die Originalszene wird oben links und das endgültige Rendering oben rechts angezeigt.

Gibt es einen Grund, warum ich mehrmals ein Downsampling durchführen sollte (128 -> 64 -> 32 -> 16), anstatt es einmal herunterzusampeln (128 -> 16)?

Wenn Sie weiter nach unten scrollen, wird der Wert sogar neunmal heruntergesampelt. (128 -> ... -> 16 -> 128 -> ... -> 16 -> und so weiter). Warum nicht wie (128 -> 16 -> 128 -> 16 -> und so weiter)?


Wirklich absurder Ansatz. Einfach den Puffer verwischen und mit Downsample GL_NEAREST.
Transistor09

Antworten:


23

Es gibt zwei Hauptvorteile:

Erstens haben einige Pixel im Originalbild keinen Einfluss auf das Ergebnisbild, wenn Sie das Bild um mehr als den Faktor zwei verkleinern. Bei Verwendung von GL_LINEARwird jedes Zielpixel nur von höchstens 4 Pixeln aus dem Quellbild abgetastet. Die anderen Pixel werden einfach verworfen. Indem Sie das Bild um den Faktor zwei verkleinern, stellen Sie sicher, dass jedes Pixel aus dem Quellbild die gleiche Wirkung auf die nächste Ebene hat.

Zweitens erfordern die auf dieser Site diskutierten Algorithmen jedes der Framebuffer-Objekte; Sie sind eigentlich alle erforderlich, auch wenn es keinen guten Grund für ein derartiges Downsampling gab. Sie können die 64x64- oder 32x32-Bilder nicht überspringen, da diese Bilder als Teil der Erstellung des Ergebnisbilds mit Gaußscher Unschärfe verwendet werden.

Wenn Sie den Artikel lesen, werden Sie feststellen, dass es 9 Mal nicht darum geht, Bilder zu verkleinern. es wird nur dreimal heruntergerechnet und dann werden mehrere Vorgänge für diese heruntergerechneten Bilder ausgeführt. Die Bilder, die Sie betrachten, zeigen nur den Status derselben 3 heruntergerechneten Bilder nach jedem Schritt des Prozesses an, ohne separate Ereignisse für das Herunterrechnen.


Ah, das macht jetzt so viel Sinn für mich. Vielen Dank.
Greffin28

1
(Im Übrigen basiert der Bloom-Effekt, den ich in meinen eigenen Spielen verwende, auf der auf der verlinkten Seite beschriebenen Methode. Persönlich habe ich 5 statt 3 Downsamples, da ich von einem viel größeren Ausgangsbild ausgehe und trotzdem eine schöne, breite Unschärfe will .)
Trevor Powell
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.