5

モンテカルロ パス トレーシングを実装しようとして、ライト サンプリング手順で問題が発生しました。

通常、手順は次のようになります。

  • カメラ (または前のポイント) から開始してサーフェス ポイントに到達するまで光線をトレースします。
  • 表面のポイントに到達したら、シーン内の光源にランダムにポイントを生成します。
  • そのライトがサーフェス上の現在のポイントに到達できるかどうかを表すジオメトリ項を計算します (この項は 0 または 1 のいずれかです)。
  • このジオメトリ項が 1 の場合、減衰係数 (ライトの距離) とマテリアルの BRDF を掛けて、そのライトの寄与を計算します。

どのようにランダムに選択されるかについての詳細は省きましたが、当面は気にしないでください (たとえば、「ディストリビューション レイ トレーシングにおける照明器具のサンプリング」を参照してください)。

問題は、私が見ているように、BRDF と光源の光の分布の両方が実際の関数ではなく、むしろ尺度であるということです。
たとえば、完全に反射する鏡の BRDF は、入射角ごとに、反射方向のディラック デルタ「関数」です (つまり、1 点で支持され、その点で 1 の質量を持つ尺度)。同様に、ポイント ライト (エリア ライトとは対照的に) は、密度関数とは対照的に、ディラック デルタによってモデル化されます。

適切な重要度のサンプリングが可能になるため、区別を明確にすることが重要と思われます。たとえば、BRDF をサンプリングする場合、次のいずれかを実行できます。

  • すべての出射方向を均一にサンプリングし、対応する反射分布「関数」でスケーリングします。
  • BRDF に従って直接サンプリングし、後でスケーリングしません。

複雑な BRDF では完全な重要度のサンプリングは不可能であるため、その間のすべてが可能であり、重要です。
ここで、BRDF が実際にディラック デルタである場合、BRDF に従ってサンプリングすることが非常に重要になることがわかります。 、方向を一様にサンプリングするときに選択する確率は0です)が、ラッキーヒットして反射方向(質量がある)を取得した場合、寄与を無限に大きくする必要があります! BRDF に従ってサンプリングする場合、常に反射方向を生成し、何もスケーリングする必要はありません (特に、無限に実行されることはありません)。

私の問題は次のとおりです。BRDFに光の寄与をどのように「掛ける」のですか。それらが両方とも一般的な尺度であり、関数だけではない場合です。BRDF の重要度サンプリングとシーン内のライトの分布の両方を考慮する場合、このステップで適切に「重要度サンプル」を作成するにはどうすればよいでしょうか? (ライトのサンプリング手順では、ライトの分布と BRDF の両方を考慮して、無限大を回避する必要があります。)

理想的には、無限大を生成しないサンプリング手順が必要です。無限大は、(上記のように) 悪いサンプリング メカニズムのアーティファクトであるべきです。したがって、後続の 4 つのシナリオでは、計算された寄与は常に有限でなければなりません。

  • エリア ライトを使用した連続 BRDF (例: ランバート ディフューズ マテリアル)
  • ポイントライトを使用した連続BRDF
  • エリア ライトを使用した個別の BRDF (例: 完全なミラー)
  • ポイント ライトを使用した個別の BRDF

もちろん、理想的にはこれは BRDF とライトの両方の任意の測定で機能しますが、上記の 4 つのケースを正しく取得できることが、ほとんどの作業が行われている場所のようです。

4

1 に答える 1

1

完全なスペキュラー パスから点光源までのディラック デルタがある場合でも、デルタの合計の統合された寄与を評価できます。(BRDF が純粋なスペキュラー ディラック デルタでない場合は、通常のレイ トレーシングで処理できますし、おそらく処理する必要があります...)

この「デルタ パス」は、通常の光線パスとは異なる動作をすることに注意してください。具体的には、通常の光線の色は輝度(単位: ルーメン/ステラジアン/m^2) を表し、これは距離に対して不変であり、BRDF サンプリングは別として、反射と透過の係数だけが乗算されます。

ただし、「デルタ レイ」の色は照度(単位: ルーメン/m^2)を表しており、距離に対して不変ではありません(1/r^2 で減衰します)。また、輝度とは異なり、デルタ パスは、パスに沿ったスペキュラー リフレクターとリフレクターの曲​​率の影響を受けます。

曲面鏡面の近軸挙動を考慮するには、反対側の視野角に対する光線源の導関数を評価する必要があります。これは、表面の局所曲率を表すヤコビアンを各反射で乗算する 2x2 ヤコビ行列で表現できる必要があります。距離の計算もこの行列を変更します。たとえば、焦点に近づくにつれて、完全なレンズが距離とともに増加する照度を生成する可能性があると考えてください。また、コースティクスが点光源に焦点を合わせる可能性のある特異点を処理する必要があることも示唆しています...

フレーム バッファの解像度は有限であるため、デルタをレンダリングすると、通常は (コースティック特異点の外側で) 有限の (非常に高い可能性がありますが) 明るさが得られます。簡単にするために、各サンプルが正確に 1 つのピクセルに寄与すると仮定します。上記の単位は、「デルタ パス」の照度をピクセルの立体角で除算して、通常の輝度と比較できるようにする必要があることを示唆しています。光線。(立体角はピクセルごとに異なることに注意してください。標準的なカメラの場合、cos(theta)係数を含める必要があります)

非鏡面で純粋な鏡面パスを終了するために、同様のことを行うことができるはずです。「デルタ光線」の統計も、従来の光線の統計とは異なる可能性があると思います。それらがモンテカルロ フレームワークにどのように適合するかを正確に把握する必要があります。

于 2012-08-03T21:58:46.753 に答える