ダイポールモデルによる半透明物体の散乱特性の計測
概要
半透明物体では,光が物体内部に入り込んで反射する表面下散乱という現象が発生します.この現象をダイポールモデルで近似することによって,半透明物体の散乱特性を計測することができます.
今回はろうの散乱特性を計測しました.さらに,計測した結果を用いてろうの質感をCGで再現しました.
半透明物体
私たちの身の周りには半透明物体で溢れています.大理石・皮膚・ろうそく・果物・肉・牛乳など,程度の差はありますが,これら全ては半透明物体としての性質を持っています.
半透明物体では光が物体内部に入って,別の点から出てくる現象が発生します.このような現象を表面下散乱(Subsurface scattering)と呼びます.表面下散乱では,ある物体表面上の点に入った光が物体内で1回ないし複数回反射して別の点から出てきます.
表面下散乱が発生する物体の表面上での光の関係を表現した関数をBSSRDF (Bidirectional Scattering Surface Reflectance Distribution Function, 双方向散乱面反射率分布関数)と呼びます.BSSRDFは入射光と出射光の位置,と方向,の8次元の関数です.
BSSRDFが既知であれば,その物体をCGで表現できるようになります.しかし,実際に計測しようとすると非常に時間がかかります.また,計測できたとしても莫大なデータ量になります*1.
ダイポールモデル
BSSRDFを表すパラメトリックモデルとして,ダイポールモデル(Dipole model)*2があります.このモデルは,多重散乱*3 *4で,無限平面で,十分に厚みのある*5,均一散乱物体のBSSRDFを良く近似します.
ダイポールモデルではBSSRDFを次式のように構成しています.
は相対屈折率,はフレネル透過率です.とすると,散乱項は次式で表せられます.
このとき各変数は次式のようになります.
,,,,,,,,,
この中で,散乱係数(Scattering cofficient),吸収係数(Absorption coefficient),相対屈折率,散乱方向の平均コサイン(Mean cosine of the scattering angle)*6の4つがパラメータになります.
例として,皮膚(Skin1[Jensen et al, 2001])のパラメータを元にとの関係をプロットしました.光が入射された位置から離れるほどは指数関数的に減衰します.
実験
実際に計測を行いダイポールモデルのパラメータを推定します.対象の半透明物体は,ろう(一辺の長さは6.9cm)です.光源として赤色レーザを使いました.カメラはCanon EOS 6DでレンズはSMC TAKUMAR 90mm F2.8です.レーザ光が対象物体に対して垂直に入射するように設置しました.表面下散乱は距離に応じて指数関数的に減衰するので輝度差が大きくなります.そこでHDR撮影を行いました.
まず,半透明物体を撮影した画像から,レーザ光の入射位置を原点としたときの距離に対応する画素値を抜き出しました.レーザ光の放射束と未知の定数を用いるとは次式で表せられます.
次に,とを求めるために拡散反射板を撮影します.理想的には標準拡散反射板(反射率>0.99)を使いたいのですが,持ってなかった*7のでコピー用紙で代替しました.拡散反射板を撮影した画像の画素値の合計を求めるとになります.は1画素あたりで撮影された拡散反射板の領域の面積です.コピー用紙に既知の長さの線を印刷しておいたので,それを元にを求めました.が求まったのでを求めることができます.
最後にを計算するとが求まります.はろうの大きさを定規で測定して,画像中の位置との関係から求めました.
結果
レーザ光の入射位置を原点としたときの距離を横軸に,計測した散乱項を縦軸にしてプロットしました.原点から離れるとは小さくなっていることが確認できます.原点に近い点<1では,が極端に大きくなっています.この点では物体表面での直接反射成分が含まれているためだと考えられます.
ダイポールモデルに基づいてパラメータの推定を行います.ここでは等方散乱を仮定するのでとします.相対屈折率は多くの物体でとなることが知られているのでこの値を用います.非線形最適化でパラメータを推定すると,/mm,/mmとなりました.
推定したパラメータを用いてレンダリングを行いました.レンダラはMitsubaを使いました.
表面下散乱の生じない拡散反射と比べると,ダイポールモデルでは陰影が少なくなり,半透明物体の質感が表現できていると思います.
立方体以外の複雑なシーンにも適用してみました.
参考資料
*1:100x100の画素数で1度単位の計測を行うと,入射光位置は100x100通り,出射光位置は100x100通り,入射光方向は360x90通り,出射光方向は360x90通り,となる.全ての組み合わせは通り.8bitで記録しても100PB(ペタバイト)必要になる.
*2:H. W. Jensen, S. R. Marschner, M. Levoy, and P. Hanrahan, “A Practical Model for Subsurface Light Transport”, Proc. SIGGRAPH2001, 2001.
*3:物質内で何度(2回以上)も反射する散乱を多重散乱.1回だけの反射は単一散乱と呼ぶ.
*4:単一散乱も近似できるモデルとして,Directional dipole modelが提案されている.J. R. Frisvad, T. Hachisuka, and T. K. Kjeldsen, “Directional dipole model for subsurface scattering,” ACM Trans. Graph., 2014.
*5:特定の厚みを持つ物体を近似できるモデルとして,Multipole modelが提案されている.C. Donner H. W. Jensen, “Light Diffusion in Multi-Layered Translucent Materials”, Proc. SIGGRAPH2005, 2005.
*6:散乱の方向を表すフェーズ関数のパラメータ.-1.0~1.0の範囲の値をとる.g=0のとき等方散乱,g>0のとき前方散乱,g<0のとき後方散乱になる.
*7:10万円くらいするみたいですね.Labsphere Spectralon, Diffuse Reflectance.