パストレの基礎概念のthree-point formについて勉強します。ここで書いていることは、私的メモ要素が強いです。
これらについてはすでによくまとめられた論文やBlogがあるのでそちらを参考にしていただければと思います。
http://graphics.stanford.edu/papers/veach_thesis/
http://rayspace.xyz/
参考
ROBUST MONTE CARLO METHODS FOR LIGHT TRANSPORT SIMULATION
http://graphics.stanford.edu/papers/veach_thesis/
3.7.1 The measurement equation
光輸送の最終目標は、実数値の測度の集合、I_1,I_2,…,I_mをを計算することです。たとえば、イメージを直接計算する光輸送ならば、各I_jはイメージの各ピクセルに相当し、mは画像全体のピクセル数に相当します。各測度は、Radianceに反応する仮想的なセンサーの出力に対応します。センサーの反応は位置やどの方向からRadianceが入射するかによって異なります。ここで、センサーの感度を
We(x,ω)で表すとすると、センサーの出力Iは、WeとLiの積の積分で以下のように求めることが出来ます。
eq 3.18
これをmeasurement equationと呼びます。
これが個々のIjに対して存在し、それぞれ異なるWe()を有します。また、個々の仮想センサーは、シーンの一部としてモデル化されています。これにより、センサー表面で積分することが可能となります。
メモ
We()はIncidentの位置と入射するRadianceの向きによる感度の関数です。Liはセンサーの位置へのRadianceです。dA(x)はセンサー面の微小面積を表し、dσはセンサー面における、向きω周りのProjected Solid Angleになります。
Projected Solid Angleは、あるSolid Angleを平面上に投影した際の領域を表します。この場合の平面とはセンサー面です。立体角ωが微小ならば、ωと平面の法線の成す角のコサインを乗じたものと解釈できます。RadianceとProjected Solid Angleの積はIrradianceとして解釈でき、これにセンサー感度のWeを乗じたものを、センサーの面積のdAで積分すれば、Radianceに反応するセンサーの出力値となるわけです。
積分の対象は、MとS^2です。MはManifoldで、勘案するすべての面の集合を指します。つまりシーン全体の平面のことです。積分の対象となっている仮想センサーの平面はシーンの一部とみなしています。S^2はセンサー上の単位球で、RadianceのSolid Angleの積分範囲ことです。
3.7.2 The light transport equation
ここでは、与えられたシーンが時間的遷移のない、平衡した状態にある場合のRadianceの計測を考えます。incident radiance: Li は、すでに存在するradiance: Loより計算することができます。
関数Xm(x,ω)は、ray casting functionです。xよりω方向に見えるM内の最初の点を返します。
Loはemitted radiance:Leとscattered radiance:Lo,sの和で表すことができます。
Le(x,ω)はシーンの説明としてあらかじめ設定されているもので、シーン内の光源を表します。一方でLo,sは以下のscattering equation(3.12)を解くことで求まります。
この二つの式を合わせて、光輸送問題の完全な形を得ることができます。面白いことに、LoとLiは
互いに定義しあうことができるので、以下の式を得ることができます。
eq3.19
これが、light transport equationです。Liが式中に出てこないので、通常Loのoは書きません。この式の形から、Loは再帰的に計算して求めることができるのがわかると思います。これが伝統的なMonteCarlo法の本質を成しています。
メモ
積分S2の中のLo()の式は、サーフェースに入射するRadianceを表します。dσが表すのは、ωまわりのProjected Solid Angleになります。
つまりLo()とProjected Solid Angleの積が入射光のIrradianceを表します。fs()はBSDFで、IrradianceとRadianceの比です。これをサーフェース上の単位球で積分した結果がschatteringによるradiance:Lo,sというわけです。
8.1 The three-point form of the transport equations
(ここで章が大きく飛びます。)
まず、ベクトルの方向を表すω_i,ω_oを式から消していくために、光輸送式を書き換える方法を示します。その最初のステップは、放射輝度をで記述することです。
はシーン内のサーフェース上の点です。今までは
と記述してきたものを今後は、以下のように記述します。
このとき で、これはxからx’に向かう単位ベクトルです。
同様にBSDFも以下のように記述します。
ここで、 ,
です。矢印の方向がそのまま光の進行方向を示します。
Fig8.1:(論文を参照のこと。光の伝搬の図です。と光がサーフェース上で伝搬する図です。)
three-point form の光輸送式は以下のように記述することが出来ます。
eq8.1
この式は、単に既出のeq3.19を書き換えたものです。これまでと同じく、Mはシーンに存在する全てのサーフェースの集合で、AはM上の面積で、Leはemitted radianceを表します。Gはもとの式の積分変数dσから、新しい積分変数のdAへの変更の部分を担っています。これらは以下の関係にあります。
eq8.2
eq8.3
ここでθiとθoはそれぞれ、線分x-x’と、x,x’におけるサーフェースの法線とのなす角に対応しています。V()はxとx’が相互に可視であれば1、そうでなければ0となる関数です。
また、eq8.2で行った変数の変更を用いて、もとのmesurement equation(3.18)を書き換えます。
eq8.4
今まで通りx->x’は光の伝搬方向を示します。注意すべきは、We()はx’からxへのインポータンスを示しますが、これは矢印の方向とは逆となります。つまりWe()を以下のように定義します。
メモ
ここでは、ほとんどの部分が記述方法の書き換えです。唯一、eq8.1のG()の項が新しく導入された部分です。G()は、x’からxを観測した場合(或いは、xからx’を観測した場合)の、x上の面積に対するx’における見かけの面積(つまり立体角)をx’上の面に投影した際の比になります。これとdA(x)を乗ずると、Projected Solid Angleに相当します。