Ich habe gehört, dass die Qualität eines Monte Carlo Ray Tracers (basierend auf Pfadverfolgungsalgorithmen) viel realistischer ist als eine verteilte (stochastische) Engine. Ich versuche zu verstehen warum, aber ich bin erst am Anfang.
Kann mich jemand in die richtige Richtung weisen, um in dieses Thema einzutauchen und die Grundlagen zu verstehen? Welcher Teil des Algorithmus führt zu einem realistischeren Rendering-Ergebnis?
Antworten:
Der Begriff "Distributed Ray Tracing" wurde ursprünglich von Robert Cook in diesem Artikel von 1984 geprägt. Seine Beobachtung war, dass der Renderer, um ein Anti-Aliasing in einem Ray-Tracer durchzuführen, ein räumliches Upsampling durchführen muss, dh mehr Samples (dh mehr Strahlen aufnehmen) als die Anzahl der Pixel im Bild und deren Ergebnisse kombinieren muss . Eine Möglichkeit besteht darin, mehrere Strahlen innerhalb eines Pixels aufzunehmen und beispielsweise deren Farbwerte zu mitteln. Wenn der Renderer jedoch ohnehin bereits mehrere Strahlen pro Pixel verfolgt, um ein gegen Alias gerichtetes Bild zu erhalten, können diese Strahlen auch auf andere Dimensionen als nur die Pixelposition "verteilt" werden, um Effekte abzutasten, die nicht mit einem einzelnen Strahl erfasst werden konnten . Das Wichtigste ist, dass dies ohne zusätzliche Kosten zusätzlich zum räumlichen Upsampling erfolgt, da Sie diese zusätzlichen Strahlen ohnehin bereits verfolgen. Beispielsweise,
Monte-Carlo-Raytracing ist ein etwas mehrdeutiger Begriff. In den meisten Fällen handelt es sich um Rendering-Techniken, die die Rendering-Gleichung lösen, 1986 von Jim Kajiya eingeführt, unter Verwendung der Monte-Carlo-Integration. Praktisch alle modernen Rendering-Techniken, die die Rendering-Gleichung lösen, wie Pfadverfolgung, bidirektionale Pfadverfolgung, progressive Photonenkartierung und VCM, können als Monte-Carlo-Ray-Tracing-Techniken klassifiziert werden. Die Idee der Monte-Carlo-Integration ist, dass wir das Integral jeder Funktion berechnen können, indem wir zufällig Punkte in der Integrationsdomäne auswählen und den Wert der Funktion an diesen Punkten mitteln. Auf einer hohen Ebene können wir bei der Monte-Carlo-Strahlverfolgung diese Technik verwenden, um die an der Kamera ankommende Lichtmenge innerhalb eines Pixels zu integrieren, um den Pixelwert zu berechnen. Ein Pfad-Tracer wählt dazu beispielsweise zufällig einen Punkt innerhalb des Pixels aus, um den ersten Strahl aufzunehmen, und wählt dann zufällig eine Richtung aus, um auf der Oberfläche fortzufahren, auf der er landet. und so weiter. Wir könnten auch zufällig eine Position auf der Zeitachse auswählen, wenn wir Bewegungsunschärfe machen möchten, oder zufällig einen Punkt auf der Blende auswählen, wenn wir Schärfentiefe machen möchten, oder ...
Wenn dies dem verteilten Raytracing sehr ähnlich ist, dann liegt das daran! Wir können uns verteiltes Raytracing als eine sehr informelle Beschreibung eines Monte-Carlo-Algorithmus vorstellen, der bestimmte Effekte wie weiche Schatten abtastet. Cooks Arbeit fehlt der mathematische Rahmen, um wirklich richtig darüber nachzudenken, aber Sie könnten verteilte Raytracing-Funktionen mit einem einfachen Monte-Carlo-Renderer implementieren. Es ist erwähnenswert, dass die verteilte Strahlverfolgung keine Beschreibung der globalen Beleuchtungseffekte enthält, die natürlich in der Rendering-Gleichung modelliert werden (es sollte erwähnt werden, dass Kajiyas Artikel zwei Jahre nach Cooks Artikel veröffentlicht wurde).
Sie können sich Monte-Carlo-Raytracing als eine allgemeinere Version von verteiltem Raytracing vorstellen. Die Monte-Carlo-Raytracing-Methode enthält ein allgemeines mathematisches Framework, mit dem Sie praktisch alle Effekte verarbeiten können, einschließlich der im verteilten Raytracing-Papier genannten.
Heutzutage ist "Distributed Ray Tracing" kein Begriff, der sich auf den ursprünglichen Algorithmus bezieht. Häufiger werden Sie es in Verbindung mit "Verteilungseffekten" hören, bei denen es sich einfach um Effekte wie Bewegungsunschärfe, Schärfentiefe oder weiche Schatten handelt, die mit einem Raytracer mit nur einer Stichprobe nicht zu bewältigen sind.
quelle
Bei der verteilten Strahlverfolgung nehmen Sie stochastisch viele Strahlen in Richtungen auf, die vom BRDF möglicherweise bevorzugt werden oder nicht . Während beim Monte-Carlo-Raytracing oder einfach beim Pfadtracing nur ein Strahl in einer vom BRDF bevorzugten Richtung abgetastet wird . Es gibt also zwei offensichtliche Vorteile für die Pfadverfolgung:
Mit der Pfadverfolgung können Sie also bessere Ergebnisse erzielen.
quelle