Volle volumetrische Monte-Carlo-Streuung


9

Ich möchte meinem Pfad-Tracer eine vollständige monte-carlo-Volumenstreuung hinzufügen, aber es fällt mir schwer zu erforschen, wie das geht. Lassen Sie mich erklären, was ich tun möchte: Volumetrische Streuung nach Monte Carlo Ein Strahl tritt in ein Material ein, und wir wenden das BTDF an. Nach einiger Entfernung tritt ein volumetrisches Streuereignis auf, wonach der Strahl (im isotropen Fall) in eine beliebige Richtung in das Material streut Kugel. Dies wiederholt sich, bis der Strahl mit einem anderen BTDF aus dem Material austritt.

Meine Fragen lauten wie folgt:

  1. Wie wähle ich den Abstand zwischen Streuereignissen? Die Intuition sagt mir, dass es eine Art Streuung-PDF geben sollte, die die Wahrscheinlichkeit gibt, nach einer bestimmten Entfernung zu streuen?
    • Wäre das richtig?
    • Wäre das PDF eine lineare Funktion für isotrope Materialien?
    • Hat diese Funktion einen Namen oder etwas, das ich googeln kann?
  2. Würde Beer-Lambert noch zwischen Streuereignissen gelten?
    • Ich würde nicht denken. Da Beer-Lambert eine Vereinfachung der tatsächlichen Streuberechnungen ist.
    • Andererseits ist Beer-Lambert vielleicht eine Berechnung auf der Mikroskala, und die Pfadverfolgung erfolgt auf einer Makroskala.
  3. Was ist das volumetrische Äquivalent zu einem BSDF? Es sieht so aus, als könnte ich eine Phasenfunktion wie Henyey-Greenstein verwenden, um die neue Richtung zu bestimmen, aber was verwende ich zur Dämpfung?
  4. Was sind schließlich einige bessere Google-Phrasen für die volumetrische Monte-Carlo-Streuung?
    • Durch die Suche nach volumetrischer Streuung (SSS) werden Artikel, Methoden und Blog-Beiträge zu den Vereinfachungen der vollständigen Monte-Carlo-Simulation (Dipol, Einstreuung, Ausstreuung, Diffusion usw.) veröffentlicht.

Antworten:


7

Eine gute Referenz für die Monte-Carlo-Pfadverfolgung in teilnehmenden Medien sind zunächst diese Kursnotizen von Steve Marschner.

σσ=σs+σein

σ

Um Ihre Fragen direkt zu beantworten:

  1. e- -σxx

    x=- -(lnξ)/.σe- -σx

    σein/.σ1- -σein/.σ

  2. Nein, wenn Sie das soeben beschriebene Wichtigkeits-Stichprobenverfahren befolgen, ist Beer-Lambert bereits implizit in die Stichprobe einbezogen, sodass Sie es nicht auf die Pfadgewichte anwenden möchten.

  3. σs,σein

    Sie könnten so etwas auch für BSDFs tun. Sie könnten die gesamte Albedo herausrechnen und die Richtungsabhängigkeit immer normalisieren. Es ist meistens eine Frage der Konvention AFAICT.

  4. Versuchen Sie "teilnehmende Medien" (dh ein volumetrisches "Medium" - mehrere "Medien" - die am Lichttransport "teilnehmen") und "volumetrische Pfadverfolgung".


Wie würden Sie Abstände für nicht monochromatische Streu- / Absorptionskoeffizienten abtasten? Wählen Sie zufällig einen Kanal und teilen Sie ihn durch 1/3 (im Fall von RGB oder XYZ)?
RichieSams

1
@RichieSams Die Empfehlung, die ich für diesen Fall gesehen habe, ist, jedem Strahl eine einzelne Wellenlänge oder einen einzelnen Farbkanal zuzuweisen. Sie berechnen also grundsätzlich die Streuung für jeden Kanal separat. Beispielsweise streut blaues Licht bei der atmosphärischen Streuung viel stärker als rot und benötigt daher viel mehr Streuereignisse, und die blauen Photonen folgen viel stärker gewundenen Pfaden als die roten. Es ist daher sinnvoll, sie separat zu simulieren - ähnlich wie die Dispersion aufgrund der Brechung. Ich habe das selbst nie wirklich versucht.
Nathan Reed

Ahh, das macht Sinn. Die Leistung wird jedoch darunter leiden ... Kein Wunder, dass jeder die teilnehmenden Medien von Monte-Carlo schätzen möchte. Danke für alle Infos!
RichieSams
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.