Nicht-Echtzeit-Raytracing


13

Ich habe einiges mit Echtzeit-Raytracing (und Raymarching usw.) gespielt, aber nicht so viel Zeit mit Nicht-Echtzeit-Raytracing verbracht - für qualitativ hochwertigere Bilder oder für das Vorrendern von Videos und dergleichen.

Ich kenne eine verbreitete Technik, um die Bildqualität im Nicht-Echtzeit-Fall zu verbessern: Wirf einfach VIELE Strahlen pro Pixel und mittle die Ergebnisse.

Gibt es andere Techniken, die sich als gute Möglichkeiten zur Verbesserung der Bildqualität im Nicht-Echtzeit-Fall herausstellen, im Vergleich zu dem, was Sie normalerweise im Echtzeit-Fall tun würden?

Antworten:


9

Die Pfadverfolgung ist die Standardtechnik für fotorealistisches Rendern in Nicht-Echtzeit. Sie sollten sich speziell mit der bidirektionalen Pfadverfolgung befassen , um Effekte wie Caustics zu erzielen, die Sie mit der einfachen Pfadverfolgung nicht wirklich erreichen können. Die bidirektionale Pfadverfolgung konvergiert auch schneller zur Bodenwahrheit, wie in der folgenden Abbildung gezeigt: Bildbeschreibung hier eingeben Auch Metropolis Light Transport (MLT) ist eine weiterentwickelte Pfadverfolgungstechnik, die durch Mutation vorhandener "guter" Pfade noch schneller zur Bodenwahrheit konvergiert: Bildbeschreibung hier eingeben

Sie können die Wichtigkeitsabtastung auch für eine schnellere Konvergenz verwenden, indem Sie mehr Strahlen in die Richtungen fokussieren, die wichtiger sind. Dh durch Fokussieren von Strahlen basierend auf BRDF (mehr in Richtung der BRDF-Spitze unter Verwendung der Wahrscheinlichkeitsdichtefunktion) oder zur Lichtquelle oder durch Erzielen des Besten aus zwei Welten und unter Verwendung von Abtastung mit mehrfacher Wichtigkeit. Bildbeschreibung hier eingeben Hier geht es darum, Lärm unvoreingenommen zu reduzieren. Darüber hinaus gibt es Entrauschen Techniken weiter zu reduzieren Rauschen in den gerenderten Bildern. Bildbeschreibung hier eingeben

Ich denke, es ist am besten, zuerst den einfachen Monte-Carlo-Pfad-Tracer zu implementieren, um als unvoreingenommene Referenz zu dienen, bevor Sie sich mit den fortgeschritteneren Techniken befassen. Es ist ziemlich einfach, Fehler zu machen und Verzerrungen einzuführen, die unbemerkt bleiben. Eine einfache Implementierung ist daher eine gute Referenz.

Sie können auch einige wirklich gute Ergebnisse erzielen, indem Sie die Pfadverfolgung auf die teilnehmenden Medien anwenden. Dies geht jedoch sehr schnell langsam: D Bildbeschreibung hier eingeben


5

Eines der großen Probleme ist die Verwendung einer konstruktiven Volumenkörpergeometrie anstelle von Dreiecksnetzen. Ray-Triangle-Schnittpunkte sind schneller als fast alle anderen Ray-Shape-Schnittpunkte. Es sind jedoch sehr viele Dreiecke erforderlich, um die Oberfläche eines Zylinders oder Torus zu approximieren, ganz zu schweigen von einigen wirklich exotischen Formen wie Julia-Fraktalen oder verallgemeinerten parametrischen Funktionen Einige Renderer unterstützen.

Eine weitere Möglichkeit ist die Verwendung von Render-Time- Photon-Mapping und diffusen Interreflexionsberechnungen : Auf diese Weise erhalten Sie genaue Lichteffekte in einer sich ändernden Szene. Beim Raytracing in Echtzeit sind diese zu teuer für die Berechnung, sodass entweder Lichtquellen und Hauptgeometrieelemente stationär sein müssen (um eine Vorberechnung zu ermöglichen), oder die Effekte werden gänzlich weggelassen.


Unterteilungsflächen werden viel mehr als nur konstruktive Volumengeometrien verwendet. Es handelt sich weiterhin um Dreiecke (oder alternativ um Splines).

3

Obwohl ich nicht über die Pfadverfolgung von Monte Carlo Bescheid wusste, als ich das schrieb, habe ich es versehentlich beschrieben. Ironischerweise ist die Pfadverfolgung von Monte Carlo die Antwort, nach der ich damals gesucht habe.

Die naive Pfadverfolgung nach Monte Carlo erfolgt durch Auswertung der so genannten Rendering-Gleichung, um den Farbwert eines Pixels numerisch zu lösen. Es werden zufällige Abtastwerte durch zufälliges Jitter innerhalb eines Pixels (es gibt bessere Abtaststrategien und Filterung: Was ist die fundamentale Begründung für Anti-Aliasing unter Verwendung mehrerer zufälliger Abtastwerte innerhalb eines Pixels? ) Und auch durch Prellen in zufällige Richtungen, wenn ein Strahl auf eine Oberfläche auftrifft, aufgenommen .

Es können viele Samples erforderlich sein, um gute Ergebnisse zu erzielen. Wenn nicht genügend Samples vorhanden sind, sieht das Bild verrauscht aus. Es werden viermal so viele Samples benötigt, um das Rauschen zu halbieren. Bei Verwendung von 8 modernen CPU-Kernen für eine einfache Szene können die Renderzeiten in der Größenordnung von einer Stunde liegen.

Es gibt fortgeschrittenere Monte-Carlo-Pfadverfolgungstechniken, mit denen Sie bessere Bilder schneller erhalten, z. B. das Abtasten der Wichtigkeit oder das Entrauschen des Bildes nach dem Rendern.

Die Monte-Carlo-Pfadverfolgung kann fotorealistische Bilder erstellen und bietet viele erweiterte Rendering-Funktionen, nur weil sie den physikalischen Gesetzen entspricht und so realistische Ergebnisse liefert.

Sie können hier mehr darüber lesen: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/

Hier ist ein Beispielbild, das mit allen 8 CPU-Kernen in etwa einer Stunde gerendert wurde:

Bildbeschreibung hier eingeben

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.