Ich habe eine Weile an meinem eigenen Renderer gearbeitet und frage mich, ob es eine Möglichkeit gibt, das Monte-Carlo-Rauschen aus dem gerenderten Bild zu entfernen, außer lange darauf zu warten, dass es konvergiert.
Ich habe festgestellt, dass das Bild unscharf ist, was nicht wirklich hilfreich ist, da es die Qualität / Schärfe des Bildes erheblich verringert. Und ich kann das Gleiche erreichen, indem ich ein kleines Bild mit mehr Samples rendere und es dann vergrößere.
Gibt es einen Algorithmus, der entwickelt wurde, um mit Bildrauschen bei der Pfadverfolgung umzugehen?
algorithm
image-processing
pathtracing
denoise
Mary Chang
quelle
quelle
Antworten:
Es gibt und ich freue mich darauf, die Besonderheiten anderer Antworten zu sehen, aber eine Möglichkeit, damit umzugehen, besteht darin, zunächst nicht das Rauschen (oder so viel Rauschen) in den Quelldaten zu haben.
Das Rauschen kommt von der Tatsache, dass das Rendering sehr unterschiedlich ist - die Anzahl der von Ihnen aufgenommenen Samples hat nicht genug zur tatsächlichen richtigen Antwort des Integrals konvergiert, sodass einige Pixel zu hoch / hell sind und andere zu niedrig / dunkel (in jedem Farbkanal).
Das Problem ist folgendes: Wenn Sie für Ihre Abtastung Zufallszahlen mit weißem Rauschen verwenden, können sich die Proben wie im Bild unten verklumpen. Wenn genügend Samples vorhanden sind, konvergiert es, aber es dauert eine Weile, bis der Sampling-Raum gut abgedeckt ist. Suchen Sie im Bild unten einen Bereich mit leerem Raum (wie unten rechts) und stellen Sie sich vor, dass dort ein kleines, helles Licht war und die Szene überall sonst dunkel war. Sie können sehen, dass das Fehlen von Samples ein Problem beim Rendern darstellt.
Alternativ können Sie in gleichmäßigen Abständen wie den folgenden abtasten. Dadurch erhalten Sie jedoch Aliasing-Artefakte anstelle von Rauschen, was schlimmer ist.
Hier ist ein "verwackeltes Gitter", in dem Sie auf einem Gitter abtasten, aber kleine zufällige Offsets innerhalb einer Zellengröße verwenden. Dies wurde von pixar erfunden und war für eine Weile patentiert, ist aber nicht mehr:
Hier ist eine übliche Sequenz mit geringer Diskrepanz, die als Halton-Sequenz bezeichnet wird (im Grunde eine 2d-Version von Van Der Corpus).
Und hier ist ein Poisson-Disc-Sampling mit Mitchels bestem Kandidatenalgorithmus:
Weitere Informationen, einschließlich des Quellcodes, der diese Bilder generiert hat, finden Sie hier: https://blog.demofox.org/2017/05/29/when-random-numbers-are-too-random-low-discrepancy-sequences/
quelle
Eine Technik, die Sie verwenden können, besteht darin, das Bild in Blöcke zu zerlegen und die Varianz jedes Blocks zu messen. Auf diese Weise können Sie mehr Samples auf Blöcke mit höherer Varianz anwenden.
Die Varianz kann mithilfe von 2 Akkumulationspuffern anstelle von 1 geschätzt werden. Sie rendern jeden Durchgang in einen alternativen Puffer. Die absolute Differenz zwischen diesen Puffern (in Bezug auf jeden Block) ist proportional zur Varianz. Nach der Präsentation auf dem Bildschirm können Sie die beiden Puffer addieren, um Ihren vollständigen Akkumulationspuffer wiederherzustellen.
quelle