Warum ist die Leistung von Monte Carlo Ray Tracing besser als die von Distributed Ray Tracing?

30

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?

p2or
quelle
9
Ich möchte mehr als "Eine Empfehlung für ein solides Buch", da diese Frage von jemandem, der dies weiß, direkt beantwortet werden sollte. Wir sollten versuchen, Informationen auf der Site zu platzieren, anstatt sie außerhalb der Site anzuzeigen.
Robobenklein
@robobenklein Frage bearbeitet, dachte besser sei vorsichtig;)
p2or
@ChristianRau Entfernen von "Danke" sollte in einem Meta besprochen werden, dies ist auf jeder Stack-Exchange-Site anders ...
p2or
1
@poor Nein, das ist es nicht wirklich. Das ändert sich nirgendwo. Und solange wir keine speziellen Regeln haben, wenden wir sowieso die allgemeinen SE-Regeln an. Aber auch dann kann ich mir kaum vorstellen, dass hier jemand abstimmen darf. Ich habe noch nie gesehen, dass dies eine gute Praxis auf einer anderen SE-Site ist.
Chris sagt Reinstate Monica

Antworten:

31

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.

Benedikt Bitterli
quelle
5

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:

  • Rechnerisch günstiger. Dies bedeutet, dass Sie mit der gleichen Rechenleistung über mehr Objekttreffer rechnen können als mit der verteilten Strahlverfolgung bei mehreren Strahlen.
  • Weniger Lärm. Die verteilte Strahlverfolgung tastet Strahlen in Richtungen ab, die vom BRDF möglicherweise nicht bevorzugt werden, wodurch unerwünschte Artefakte entstehen.

Mit der Pfadverfolgung können Sie also bessere Ergebnisse erzielen.

Ranagraw
quelle
2
"Während beim Monte-Carlo-Raytracing oder einfach beim Pfadtracing nur ein Strahl in einer vom BRDF bevorzugten Richtung abgetastet wird." An sich wissen Sie nicht, wie der Strahl ausgewählt wird. Naive Ansätze verwenden zufällige Strahlen. Die Berücksichtigung der BRDF ist eine wichtige Stichprobe, die der Monte-Carlo-Strahlen- oder Pfadverfolgung nicht inhärent ist.
David Kuri
4
Ich halte diese Antwort für völlig falsch. Sie können ausgehende Strahlen mehrfach abtasten und deren Ergebnis beim Kombinieren gewichten. Sie erhalten die gleiche Wahrheit wie die russische Roulette-Technik, aber es ist allgemein anerkannt, dass die erstere Methode teurer ist.
v.oddou