完全なモンテカルロ体積測定散乱


9

パストレーサーに完全なモンテカルロボリューム散乱を追加したいのですが、その方法を調べるのに苦労しています。私が何をしたいのかを説明しましょう: モンテカルロ体積散乱 光線が材料に入り、BTDFを適用します。その後、ある距離の後に体積散乱イベントが発生し、その後(等方性の場合)、光線は任意の方向に散乱します。球。これは、光線が別のBTDFで材料を出るまで繰り返されます。

私の質問は次のとおりです。

  1. 散布イベント間の距離を選択するにはどうすればよいですか?直感は、特定の距離の後に散乱する確率を与える、ある種の散乱PDFがあるべきだと私に教えてくれますか?
    • これは正しいでしょうか?
    • pdfは等方性材料の線形関数になりますか?
    • この関数には、Googleが使用できる名前または何かがありますか?
  2. Beer-Lambertはまだスキャッターイベントの間に適用されますか?
    • 私はそうは思いません。Beer-Lambertは実際の散乱計算を単純化したものであるため。
    • また、Beer-Lambertはマイクロスケールでの計算であり、パストレースはマクロスケールである可能性があります。
  3. BSDFに相当する体積は何ですか?Henyey-Greensteinなどの位相関数を使用して新しい方向を決定できるようですが、減衰には何を使用しますか?
  4. 最後に、モンテカルロ体積散乱のより良いGoogleフレーズは何ですか?
    • 体積散乱(SSS)を検索すると、完全なモンテカルロシミュレーション(双極子、内部散乱、外部散乱、拡散など)の簡略化に関する論文、方法、ブログ投稿が表示されます。

回答:


7

まず、参加メディアでのモンテカルロパストレースの良い参考資料、Steve Marschnerからのこれらのコースノートです。

体積散乱について私が考えるのが好きな方法は、媒体を通過する光子が相互作用する(散乱または吸収される)単位長さあたりの特定の確率を持つということです。相互作用しない限り、妨げられることなく、エネルギーを失うことなく、直線的に進みます。距離が大きいほど、その距離のどこかで相互作用する確率が高くなります。単位長あたりの交互作用確率は、方程式で見られる係数です。通常、散乱と吸収の確率には別々の係数があるため、です。σ = σ S + σ Aσσ=σs+σa

単位長さあたりのこの確率は、Beer-Lambert法の起源です。光線のセグメントを微小な間隔にスライスし、各間隔を独立した相互作用可能な場所として扱い、光線に沿って統合します。距離の関数としての相互作用の確率の指数分布(レートパラメーター)を取得します。σ

したがって、質問に直接回答するには:

  1. あなたはできるあなたが欲しいしかし、技術的に限り、あなたは正しく光子が媒体と相互作用することなく、隣接する二つの事象の間にそれを作ることができる確率のパスを重みとして、イベント間の距離を選択してください。言い換えると、媒体内の各パスセグメントは重み係数を提供します。ここで、はセグメントの長さです。(これは均一な媒体を想定していますが、不均一な場合の対処方法については、上記のMarschnerの注のセクション4.2を参照してください。) Xeσxx

    これを踏まえると、距離の通常の良い選択は、指数分布から距離を重要度サンプリングすることです。つまり、を設定し、パスの重みから係数を除外します。E - σ Xx=(lnξ)/σeσx

    次に、吸収を説明するために、ロシアンルーレットを使用して、各イベントでパスのフラクションをできます。これは、非常に大きい、または無限のメディア(大気散乱を考えてください)で特に必要です。この場合、パスを削除しないと、パスが任意の時間バウンスする可能性があります。小さくて密度があまり高くないメディアのみを扱う場合は、ロシアのルーレットを使用するよりも、イベントあたりの重みをとするほうがよいでしょう。1 - σ A / σσa/σ1σa/σ

  2. いいえ、今説明した重要性サンプリング手順に従う場合、Beer-Lambertは既に暗黙的にサンプリングに組み込まれているため、パスの重みに適用する必要はありません。

  3. BSDFに相当する体積は、散乱および吸収係数と位相関数の組み合わせです。慣例により、係数は透過、散乱、吸収の全体的なバランスを制御しますが、位相関数は常に正規化されます。σs,σa

    BSDFに対しても、このようなことを行うことができます。全体的なアルベドを除外し、方向依存を常に正規化することができます。それは主に大会AFAICTの問題です。

  4. 「参加型メディア」(つまり、ボリュームの「メディア」—複数の「メディア」—光輸送に「参加する」)と「ボリュームのパストレース」を試してください。


非単色の散乱/吸収係数の距離をどのようにサンプリングしますか?チャネルをランダムに選択してから、1/3で除算しますか(RGBまたはXYZの場合)?
RichieSams 2016年

1
@RichieSamsその場合に私が見た推奨事項は、各光線に単一の波長またはカラーチャネルを割り当てることです。したがって、基本的に各チャネルの散乱を個別に計算します。たとえば、大気散乱では、青色光は赤色よりもはるかに強く散乱するため、より多くの散乱イベントが必要であり、青色光子は赤色光子よりもはるかに複雑な経路をたどります。したがって、屈折による分散のように、それらを個別にシミュレートすることは理にかなっています。私は実際にこれを実際に試したことはありません。
ネイサンリード

ああ、それは理にかなっています。ただし、パフォーマンスは低下します...モンテカルロの参加メディアを推定したいと思う人もいるでしょう。すべての情報をありがとう!
RichieSams 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.