環境マップの重要度サンプリング


14

MISベースの単方向パストレーサーおよび同様のタイプのレンダラーでサンプリングされた環境マップ(EM)について、現在知られている、理想的には製品検証済みのアプローチとして最も良いものは何ですか?私は、非常に複雑で理解しにくい実装のコストで完全なサンプリングを提供するソリューションよりも、合理的に機能的でありながら合理的に機能するソリューションを好むでしょう。

私がこれまでに知っていること

EMをサンプリングするいくつかの簡単な方法があります。BSDFとEM関数の両方のシェイプを無視する、余弦加重法で必要な半球をサンプリングできます。その結果、動的EMには機能しません。

ここに画像の説明を入力してください

サンプリングを使用可能なレベルに改善するには、球体全体のEMの輝度をサンプリングします。比較的簡単に実装でき、結果は非常に良好です。ただし、サンプリング戦略では、半球の可視性情報と余弦係数(およびBSDF)も無視されているため、EMの高輝度領域によって直接照らされない表面に高いノイズが生じます。

ここに画像の説明を入力してください

論文

このトピックに関する論文をいくつか見つけましたが、まだ読んでいません。これらのいずれかを読み、順方向単方向パストレーサーで実装する価値がありますか?

  • 環境マップの構造化重要度サンプリング(2003)Agarwal et al。

  • Kartic SubrとJim ArvoによるSteerable Importance Sampling(2007)。彼らは、「...コサインの重みを考慮しながら、任意の表面の局所的な向きによって定義される正の半球でサンプルを生成する環境マップの効率的な層別重要度サンプリングのアルゴリズムを提示すると主張しています。「重要なサンプリング球面調和関数」という論文は次のようにコメントしています。これは、クランプコサインを任意の方向に効率的に回転できる操縦可能な基盤を形成します。」

  • Petrik ClarbergとTomasAkenine-Möllerによる、直接照明用の​​実用的な製品重要度サンプリング(2008)。環境マップの照明と表面反射率の積をサンプリングするためのアルゴリズム。ウェーブレットベースの重要度サンプリングを使用します。

  • Jarosz、Carr、およびJensennによる重要度サンプリング球面調和関数(2009)。要約では、「...球面調和関数(SH)として表される重要度サンプリング関数の最初の実用的な方法を提示しています...」

  • トーンマップされた平均シフトベースの環境マップサンプリング(2015)(Feng et al。)これはかなり新しく、私はそれへの参照も論文自体も見つけませんでした。


一つの質問があります。2番目の画像は、EMをサンプリングすることによってのみ生成されますか?それとも、サンプリングコサインとサンプリングEMのMISedバージョンですか?MISedバージョンであることを本当に願っています。もしそうなら、私は影の部分の高ノイズの治療法があるかもしれないからです。
トム

@tomはありません。それは、(ランバート)BRDFとコサイン係数の両方を無視して、球状のEMサンプリングのみを使用します。64個のサンプルが使用され、画像空間フィルタリングは適用されず、ピクセル領域全体で平均化されました。MISを適用してEMサンプリングとコサインサンプリングを組み合わせると、影のノイズは大幅に減少しますが、太陽に照らされた部分ではわずかに増加します。
ivokabel

回答:


6

これは完全な答えではない、私ちょうど私が質問に記載された論文のうちの2つを研究することによって得られた知識を共有したいと思います:操縦可能重点サンプリング直接照明のための実用的な製品の重点サンプリングを

操縦可能な重要度サンプリング

この論文では、クランプされたコサイン成分と環境マップ照明の積をサンプリングする方法を提案しています:

LEM(ωi)(ωin)+

それらは、積関数の区分的線形近似が比較的うまく表現でき、最初の9つの球面調和基底を使用して部分的に事前計算できるという事実を利用します。彼らは、適応的に三角測量されたEMの上にこの近似を構築し、サンプリングの重要度関数として使用します。

それらは、各三角形の頂点の近似係数と、各三角形の三角形の近似積分の計算の係数を事前に計算して保存します。これらの係数は、頂点および三角形の重みと呼ばれます。次に、球面調和基底を追加せずに個々の三角形の重みを合計するだけで、三角形のセット全体の積分係数を簡単に計算できるという事実を利用します。これにより、各ノードにノードのサブツリー三角形上の近似積分を計算するための係数が含まれる三角形上でバランスの取れたバイナリツリーを構築できます。

サンプリング手順は、三角形を選択し、その領域をサンプリングすることで構成されます。

  • 三角形は、サブ積分近似に比例する確率で、事前に構築された二分木を下降することにより選択されます。これには、サブ積分のオンザフライ計算かかります。それぞれは、事前に計算された係数を持つクランプ余弦球面調和座標の1つの内積で構成されます。 O(logN)
  • 次に、選択された三角形の表面は、論文で提案された新しい層化サンプリング戦略により、双線形方式で時間でサンプリングされます。O(1)

私には、これは有望なテクニックのように見えますが、論文に関する古典的な問題は、それが実際の生活の中でどのように振る舞うかです。一方では、EMが三角形分割された区分的線形関数で近似することが困難である場合があり、これにより膨大な量の三角形が発生したり、サンプル品質が低下したりする可能性があります。一方、複数の光源をサンプリングする際に役立つ可能性のある、EM寄与全体の比較的良い近似値を即座に提供できます。

直接照明のための実用的な製品重要度サンプリング

この論文では、環境マップ照明と余弦重み付き表面反射率の積をサンプリングする方法を提案しています。

LEM(ωi)fr(ωi,ωo,n)(ωin)+

このメソッドでの前処理は、EMの階層表現の計算(ミップマップまたはウェーブレットベース)のみです。残りはサンプリング中にその場で行われます。

サンプリング手順:

  • fr(ωi,ωo,n)(ωin)+
  • BRDF近似とEMの積の計算:BRDF 4分木リーフで乗算が行われ、平均値が親に伝播されます。
  • 製品サンプリング:単純なサンプルワーピングを使用して、均一なサンプルが製品ツリーに供給されます。

この手順では、事前の計算が多くかかりますが、比較的良好なサンプルを生成する必要があります。最高のサンプリングパフォーマンスを実現するには、BRDF近似に約100〜200のBRDFサンプルが必要です。これにより、シェーディングポイントごとに多くのサンプルを生成する純粋な直接照明計算に適している場合がありますが、通常は数個のサンプルのみを生成するグローバルイルミネーションアルゴリズム(単方向または双方向パストレーサーなど)には高価すぎる可能性ありますシェーディングポイントごと。


4

免責事項:環境マップサンプリングの最新技術についてはわかりません。実際、このトピックに関する知識はほとんどありません。したがって、これは完全な答えではありませんが、数学的に問題を定式化し、分析します。私は主に自分自身でこれを行いますので、自分自身でそれを明確にしますが、OPや他の人がそれを役に立つと思うことを願っています。


ある点で直接照明を計算したい、つまり積分 値を知りたい ここで、はBSDF関数です(後で有用になる法線への依存を明示的に示します)、は環境マップの放射輝度、余弦項は、(視認性と共にあるその何のためのものである IE)であれば

I=S2f(ωi,ωo,n)L(ωi)(ωin)+dωi
f(ωi,ωo,n)L(ωi)(ωin)++(ωin)+=0(ωin)<0

確率密度関数に関するサンプル を生成することにより、この積分を推定します。推定量は Nωi1,,ωiNp(ωi)

I1Nk=1Nf(ωik,ωo,n)L(ωik)(ωikn)+p(ωik)

問題は、許容可能な時間内にサンプルを生成でき、上記の推定量の分散が適度に小さいように、pdfをどのように選択するかです。p


最善の方法被積分関数比例する 選択 しますこのpdfに従ってサンプルを生成するのは非常に高価なので、実際には役に立ちません。p

p(ωi)f(ωi,ωo,n)L(ωi)(ωin)+

OPが提案する方法:

方法1:余弦項に比例する 選択する方法2:EMに比例する 選択するp

p(ωi)(ωin)+
p
p(ωi)L(ωi)

言及された論文の名前に基づいて、私はそれらが何をするかを部分的に推測することができます(残念ながら、私は今それらを読む時間とエネルギーを持っていません)。しかし、彼らがおそらく何をするかを議論する前に、パワーシリーズについて少し話しましょう:D


1つの実変数の関数、たとえば。その後、適切に動作する場合、べき級数 ますは定数です。これは近似するために使用することができるいくつかのステップで和を切り捨てることによって 場合十分に高いエラーが本当に小さいです。f(x)

f(x)=k=0akxk
akfn
f(x)k=0nakxk
n

2つの変数に関数がある場合、最初の引数でのみ関数を展開できます ここで、 はのみの関数です。また、両方の引数 で展開できます。ここで、は定数です。したがって、実引数を持つ関数は、その引数の累乗の合計として展開できます。同様のことが、球体で定義された関数に対しても実行できます。f(x,y)

f(x,y)=k=0bk(y)xk
bk(y)y
f(x,y)=k,l=0cklxkyl
ckl

さて、球で定義された関数、例えば持ちましょう。このような関数は、1つの実パラメーター関数と同様の方法で展開できます 。は定数で、は球面調和関数です。球面調和関数は通常2つのインデックスでインデックス付けされ、球面座標の関数として記述されますが、ここでは重要ではありません。重要なことは、がいくつかの既知の関数の合計として記述できることです。f(ω)

f(ω)=k=0αkSk(ω)
αkSk(ω)f

球上の2点を取る関数は、最初の引数 またはその両方の引数 f(ω,ω)

f(ω,ω)=k=0βk(ω)Sk(ω)
f(ω,ω)=k,l=0γklSk(ω)Sl(ω)

では、これはどのように役立つのでしょうか?

CMUNSM(クレイジーメンタルノーサンプリングノーメソッド)を提案し ます:すべての関数、すなわち 我々はにこれを接続した場合積分

f(ωi,ωo,n)=k,l,m=0αklmSk(ωi)Sl(ωo)Sm(n)L(ωi)=n=0βnSn(ω)(ωin)+=p,q=0γpqSp(ωi)Sq(n)
I=k,l,m,n,p,q=0αklmβnγpqSl(ωo)Sm(n)Sq(n)S2Sk(ωi)Sn(ω)Sp(ωi)dωi

積分値事前に計算してからを計算できるため、実際にはモンテカルロは必要ありません。合計、最初のいくつかの用語のみを合計します)、望ましい結果が得られます。S2Sk(ωi)Sn(ω)Sp(ωi)dωi

これはすべて素晴らしいことです、BSDFまたは環境マップの展開がわからないか、展開が非常にゆっくり収束するため、合理的に正確な答えを得るには、合計で多くの用語を取る必要があります。


そのため、すべての引数を拡張することは考えていません。調査する価値のある方法の1つは、BSDFを無視して環境マップのみを展開することです。つまり、 pdfになります: P ω IK Σ N = 0 β N S Nω Iω N +

L(ωi)n=0KβnSn(ωi)
p(ωi)n=0KβnSn(ωi)(ωn)+

に対してこれを行う方法はすでに知っています。これはメソッド1に他なりません。私の推測では、それはより高い論文の1つで行われています。KK=0K


さらなる拡張。異なる引数で異なる関数を展開し、上記と同様のことを行うことができます。別のことは、異なる基準で拡張できることです。つまり、球面調和関数ではなく異なる関数を使用します。

これがこのトピックに対する私の見解です。少なくとも少しでもお役に立てば幸いです。そして今度はGoTとベッドに向かいます。


ハハ、答えを投稿したとき、SEは私が人間なのかロボットなのかを尋ねました。サイトは確信していませんでした。
トム

あなたは私の脳を溶かしたいですよね。;-)ところで:私はすでに2つの論文/プレゼンテーションを読むことができたので、今週の終わりに質問を拡張するか、表面的な回答を書くことを望みます。そして今、GoT FTW!
ivokabel

0

製品のサンプリング方法は光線のより良い(完全な)分布を提供しますが、MIS(多重重要度サンプリング)を使用することは生産で検証された方法であると言えます。シャドウイング情報は不明であるため、製品のサンプリングはとにかく完璧にはならず、実装するのは非常に困難です。より多くの光線を撮影することはもっと価値があるかもしれません!もちろんあなたの状況と光線の予算に依存します!

MISの簡単な説明:本質的には、BSDFレイ(とにかく間接照明を行う場合)とEMに向かう明示的なレイの両方をトレースします。MISは、多くのノイズを除去する方法でそれらを結合できるように重みを与えます。MISは、発生する状況に基づいて「テクニック」(暗黙的または明示的なサンプリング)を選択するのに特に適しています。これは、ユーザーが粗さなどに基づいて難しい選択をする必要なく自然に起こります。

これについては、http://graphics.stanford.edu/papers/veach_thesis/の第9章で詳しく説明しています。エリアライトを使用したMISのデモについては、https://www.shadertoy.com/view/4sSXWtも参照してください


はい、MISは重要な生産検証済みの手法であり、非常に役立ちます。これをソリューションに採用します(質問でもっと明確に述べたはずです)。ただし、MISベースの推定器の全体的なパフォーマンスは、その部分サンプリング戦略の品質に依存します。ここでやろうとしていることは、サブストラテジーの1つを改善して、推定器の全体的なパフォーマンスを改善することです。私の経験では、通常、生成が簡単な低品質のサンプルよりも、生成に費用がかかる可能性があるよりも、高品質でないサンプルを使用する方が効率的です。
-ivokabel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.