Radiosity VS Ray Tracing

12

Radiosität ist im Grunde das, was dies ermöglicht: Direkte Beleuchtung VS Radiosity

In einem Tutorial der Cornell University über Radiosity wird Folgendes erwähnt:

Eine Raytrace-Version des Bildes zeigt nur das Licht, das den Betrachter durch direkte Reflexion erreicht - daher fehlen die Farbeffekte.

In Wikipedia jedoch :

Radiosity ist ein globaler Beleuchtungsalgorithmus in dem Sinne, dass die auf einer Oberfläche eintreffende Beleuchtung nicht nur direkt von den Lichtquellen stammt, sondern auch von anderen Oberflächen, die Licht reflektieren.

...

Die Radiosity-Methode im aktuellen Computergrafikkontext leitet sich von der Radiosity-Methode für die Wärmeübertragung ab (und ist im Wesentlichen dieselbe wie diese).

Und wenn Ray Tracing in der Lage ist:

Simulation verschiedenster optischer Effekte wie Reflexion ( diffuse Reflexion ) und Streuung (dh die Ablenkung eines Strahls von einem geraden Weg, zum Beispiel durch Unregelmäßigkeiten im Ausbreitungsmedium, in Partikeln oder in der Grenzfläche zwischen zwei Medien)

Hat dieses Tutorial diese Effekte nicht berücksichtigt, oder gibt es Radiosity-Methoden, die beim Raytracing verwendet werden können, um sie zu aktivieren?

Wenn nicht, könnten diese optischen Effekte die Radiosität nicht vollständig simulieren, oder ist der Radiositätsalgorithmus effizienter bei der Lösung des Problems der diffusen Reflexion?

Armfuß
quelle

Antworten:

13

Radiosity berücksichtigt keine Spiegelreflexionen (dh es werden nur diffuse Reflexionen verarbeitet). Die Raytracing-Funktion von Whitted berücksichtigt nur glänzende oder diffuse Reflexionen, möglicherweise spiegelreflektiert. Und schließlich ist Kajiyas Pfadverfolgung die allgemeinste [2], die eine beliebige Anzahl diffuser, glänzender und spiegelnder Reflexionen verarbeitet.

Ich denke, es hängt davon ab, was Sie unter "Ray-Tracing" verstehen: die von Whitted entwickelte Technik oder jede Art von "Tracing Rays" ...

Randnotiz: Heckbert [1] (oder Shirley?) Entwickelte eine Klassifizierung der Lichtstreuungsereignisse, die auftraten, als das Licht von der Leuchte zum Auge gelangte. Im Allgemeinen hat es die folgende Form:

L(S|D)*E

"L" steht für Leuchte, "D" für diffuse Reflexion, "S" für spiegelnde Reflexion oder Brechung, "E" für Auge und die Symbole "*", "|", "()", "[]" aus regulären Ausdrücken und bezeichnen "null oder mehr", "oder", "Gruppierung", "eins von". Veach [3] erweiterte die Notation in seiner berühmten Dissertation um "D" für Lambertian, "S" für Specular und "G" für Glossy Reflection und "T" für Transmission.

Insbesondere werden die folgenden Techniken klassifiziert als:

  • OpenGL-Shading: EDL

  • Appels Strahlenwurf: E(D|G)L

  • Whitteds Raytracing: E[S*](D|G)L

  • Kajiyas Spurensuche: E[(D|G|S)+(D|G)]L

  • Golars Radiosität: ED*L

[1] Paul S. Heckbert. Adaptive Radiosity-Texturen für bidirektionales Raytracing. SIGGRAPH Computer Graphics, Band 24, Nummer 4, August 1990

[2] Der Siggraph 2001-Kurs "Stand der Technik in der Monte-Carlo-Ray-Tracing-Technik für die realistische Bildsynthese" besagt Folgendes: "Die verteilte Ray-Tracing- und Pfad-Tracing-Technik umfasst mehrere Bounces mit nichtspekularer Streuung, wie z E(D|G)*L. B.. Selbst diese Methoden werden jedoch ignoriert Pfade der Form E(D|G)S*L, das heißt, mehrere spiegelnde Reflexionen von der Lichtquelle wie bei einer Ätzlösung. "

[3] Eric Veach. Robuste Monte-Carlo-Methoden für die Lichttransport-Simulation. Ph.D. Dissertation, Stanford University, Dezember 1997

Ecir Hana
quelle
Die Notation für die Pfadverfolgung deutet darauf hin, dass Pfade nicht so behandelt werden können, ES*Laber natürlich, wenn es sich um Flächenlichter handelt (keine punktuellen Lichter). Außerdem denke ich, dass diese Aussage in Ihrer Referenz [2] einfach falsch ist. Bei der Pfadverfolgung werden Ätzmittel nicht ignoriert. es ist einfach nicht sehr effizient bei ihnen (Photon Mapping, Metropolis, VCM usw. sind besser).
Nathan Reed
Vielen Dank an Ecir für die Erklärung (speziell für die Regex ... Ich frage mich, ob sie jemals E {2} für beide Augen in Betracht gezogen haben;). Als ich "Ray Tracing" erwähnte, zitierte ich das Tutorial der Cornell University, sie erwähnten keine bestimmte Technik, deshalb bezweifelte ich, dass Radiosity ein Typ ist oder teilweise zum Ray Tracing gehört. Wenn Sie also eine diffuse Reflexion erzeugen würden, würden Sie die Pfadverfolgung der Radiosität vorziehen? Warum (welches wäre effizienter)?
Armfoot
1
@ NathanReed Ich fragte bei ompf2 danach und sagte: "Die einzige Art von Lichtwegen, die ein Vorwärtspfad-Tracer nicht abtasten kann, ist E (D | G) * S + L, wobei L eine Lichtquelle ist, deren Definition eine Delta-Verteilung beinhaltet Beispiele sind Punktlichter und Richtungslichter. Solche Pfade können unter Verwendung der erweiterten Notation von Veach für Leuchten und Sensoren beschrieben werden, siehe Abschnitt 8.3.2 in seiner Dissertation. "
Ecir Hana
@Armfoot Ich würde definitiv mit Pfadverfolgung gehen. Viele Recherchen, Bücher, Code, von dem man lernen kann. Ich weiß allerdings nicht, welche zu viele Variablen schneller wären (Beschleunigungsstruktur, Beschattungssystem, ...). Radiosity simuliert anscheinend die Wärmeausbreitung, nachdem die Szene in viele winzige Dreiecke ( FEM ) aufgeteilt wurde. Ich habe es nie ausprobiert und das einzige Produkt, von dem ich weiß, dass es Autodesk Lightscape ist. Sind Sie sich wirklich sicher, dass Sie jemals nur diffuse Reflexionen benötigen werden?
Ecir Hana
1
@Armfoot Die Notation verwendet E {2} nicht aus demselben Grund wie L {n} für mehrere Lichter. Dies beschreibt einen einzelnen Pfad oder eine einzelne Probe. Normalerweise formalisieren wir das Monte-Carlo-Rendering, indem wir die Kajiya-Rendering-Gleichung nehmen und in eine Zufallsvariable umwandeln, deren erwarteter Wert die Lösung der Gleichung ist. Sie können dann den Wert eines Pixels berechnen, indem Sie viele Stichproben nehmen und den Mittelwert schätzen. Lichtwege entsprechen mehr oder weniger den Feynman-Diagrammen.
Pseudonym