Skip to content
Go back

Understanding the masking-shadowing function in microfacet-based brdfs

· Updated:

paper web

拙訳は抜粋や意訳を多く含みます。原著を必ず確認してください。

拙訳

1. 前書き(Introduction)

マイクロファセット理論は元々、表面上の散乱を研究するために光物性optical physicsの分野で開発された[Beckmann and Spizzichino 1963Beckmann, P. and Spizzichino, A. 1963. The scattering of electromagnetic waves from rough surfaces.]。グラフィクス界隈では物理ベースの双方向反射率分布関数(BRDF)を導入するために使われ[Cook and Torrance 1982Cook, R. L. and Torrance, K. E. 1982. A reflectance model for computer graphics. ACM Trans. Graph. 1, 1, 7–24. 10.1145/357290.357293. https://graphics.pixar.com/library/ReflectanceModel/paper.pdf.; Oren and Nayar 1994Oren, M. and Nayar, S. K. 1994. Generalization of Lambert's reflectance model. Proceedings of the 21st annual conference on computer graphics and interactive techniques 239–246. 10.1145/192161.192213. https://cave.cs.columbia.edu/Statics/publications/pdfs/Oren_SIGGRAPH94.pdf.; Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]、今日の3DCGには欠かせない技術となっている。2012年と2013年のSIGGRAPHにはマイクロファセット理論を扱うコースもあり[McAuley et al. 2012McAuley, S., Hill, S., Hoffman, N., Gotanda, Y., Smits, B., Burley, B. and Martinez, A. 2012. Practical physically-based shading in film and game production. ACM SIGGRAPH 2012 courses. 10.1145/2343483.2343493. https://blog.selfshadow.com/publications/s2012-shading-course/.; McAuley et al. 2013McAuley, S., Hill, S., Martinez, A., Villemin, R., Pettineo, M., Lazarov, D., Neubelt, D., Karis, B., Hery, C., Hoffman, N. and Zap Andersson, H. 2013. Physically based shading in theory and practice. ACM SIGGRAPH 2013 courses. 10.1145/2504435.2504457. https://blog.selfshadow.com/publications/s2013-shading-course/.]、そこではアーティストによる調整のしやすさや計算の効率性などについても議論されている。マイクロファセットは、要素の組み合わせの数だけ可能性が存在するため、今なお盛んな分野である。しかし、要素の適切な選び方が明白でないことがままあるため、混乱の主な原因になっている。

この文書で取り上げること(What This Document Is About)

この文書では、マイクロファセットベースのBRDFにおけるmasking-shadowing関数の選び方に関する、新しい見方と長年の疑問に対する答えを提供する。

この文書で取り上げないこと(What This Document Is Not About)

一般的に使われているモデルを論じるのみであって、新しいBRDFモデルを提案したりはしない。理解を深めるためにモデルについての背景知識を提供するのが目的であって、他のモデルを差し置いて特定のモデルをおすすめしたりはしない。物理パラメータの理解に注力するのであって、すでに使用実績があるからといってその実装や特定のレンダリング技法での使われ方を想定しない。

マイクロファセットモデルにおける”物理ベース”が意味するところ(On The Meaning Of “Physically Based” Regarding Microfacet Models)

物理的モデルとは、解析、説明、挙動の予測が可能であるシステムまたは物理現象の簡略表現である。

マイクロファセット理論において、研究対象であるモデルは、巨視的尺度macroscopic scaleで見ると平坦な幾何的表面だが、微視的尺度microscopic scaleで見るとその界面interfaceは荒く、マイクロファセットで構成されている。この表現は、幾何的表面の界面geometric surface interfaceで発生する散乱現象scattering eventsを説明したり予測したりするときに使われる。

有意義なマイクロファセットモデルは、どれだけのマイクロファセットが指定の方向を向いているかを統計的に示す法線分布と、どのようにマイクロファセットがマイクロサーフェス上に組織されているかを示すマイクロファセットプロファイルによって説明される。このような有意義なマイクロファセットモデルから導き出された方程式を持つマイクロファセットBRDFは、マイクロサーフェスモデルに基づくことから、まさしく”物理ベース”と呼ばれる。逆に、マイクロサーフェスモデルからBRDFが導けないなら、それは”物理ベース”とは呼ばれない。masking-shadowing関数は、マイクロファセットBRDFの一部で、マイクロファセットが出射方向から(masking)か入射方向から(shadowing)のいずれかから見えている確率を表す。BRDFのときと同様に、マイクロサーフェスモデルから導き出される場合のみ、masking-shadowing関数は”物理ベース”と呼ばれる。

本稿では、マイクロサーフェスモデルが正式にはどのように説明されているか、そこから物理ベースのmasking-shadowing関数がどのように導き出されるかを解説する。これが、関連する物理ベースBRDFの導出にどうつながるかも紹介する。

ただし、マイクロファセットモデルは、幾何光学のみを扱う、完全な鏡面または拡散反射である、複数回の散乱を考慮しない、といったマイクロサーフェスの光学的な振る舞いに関する仮定に基づく、単なるモデルであることに注意すべきである。したがって、“物理ベース”と呼ばれるそれは、現実の物理表面の測定値を正確に予測することができるという意味ではない、ということを頭に入れておく必要がある。仮定したものが間違っていれば、計測データと比較したとき、数学的に厳密な”物理ベース”のそれより経験則的モデルのほうが正確であることも十分にあり得る。

アイデアと構成(Ideas and Organization)

この文書で述べられるアイデアは以下の3つの先行研究に強く影響を受けている:

  • Smith [1967Smith, B. 1967. Geometrical shadowing of a random rough surface. IEEE Transactions on Antennas and Propagation 15, 5, 668–671. 10.1109/TAP.1967.1138991.] のmasking関数は、コンピュータグラフィクスの文献のなかで最も有名なものの一つである。しかし、その論文の最後で彼が、この関数が可視投影面積visible projected areaの保存を保証する性質を持つ、ということを指摘しているのはあまり知られていない。これは正しいmasking関数から期待される性質である。
  • Ashikmin et al. [2000Ashikmin, M., Premože, S. and Shirley, P. 2000. A microfacet-based BRDF generator. Proceedings of the 27th annual conference on computer graphics and interactive techniques 65–74. 10.1145/344779.344814. https://dl.acm.org/doi/pdf/10.1145/344779.344814.]可視投影面積visible projected areaが幾何的表面からマイクロサーフェスに至るまで保存される量であることを見つけ出した。この知見は、正しく正規化されていることとエネルギーが保存されていることを保証する、正しいmasking項の一般式を導出するために使われた。この導出の最中には、自然とSmithのmasking関数を再発明していた。彼らのmasking項は積分形式で表されており、閉形式を導くことはできない。彼らは数値的に前計算を行い、ルックアップテーブルに格納する方法を取った。
  • Ross et al. [2005Ross, V., Dion, D. and Potvin, G. 2005. Detailed analytical approach to the Gaussian surface bidirectional reflectance distribution function specular component applied to the sea surface. Journal of the Optical Society of America A, Optics and Image Science 22, 11, 2442–2453. 10.1364/JOSAA.22.002442.] は海面の反射率に関する研究を提案した。ガウス的な荒い表面(Beckmann分布)で海面をモデル化し、Smithのmasking-shadowing関数を組み込んだ正規化済みBRDFを計算した。彼らはガウス的表面ではBRDFの正規化係数とSmithのmasking関数が打ち消し合うような似通った式を持つことを発見した。この性質は計算機処理目的では便利だが、彼らはこれが発生する物理的理由を示さなかった。

本稿では、可視投影面積visible projected areaの保存の観点からこれまでのすべての研究結果を直接導き出せる、統一されたマイクロファセットフレームワークを提案する。

(各節の概要) 1

表記意味
Ω\Omega球領域spherical domain4π4\piステラジアン)
(θ,ϕ)(\theta, \phi)球面座標spherical coordinatesω=(cosϕsinθ,sinϕsinθ,cosθ)\omega = (\cos\phi\sin\theta, \sin\phi\sin\theta, \cos\theta)
ωo=(xo,yo,zo)\omega_o = (x_o, y_o, z_o)出射方向
ωi=(xi,yi,zi)\omega_i = (x_i, y_i, z_i)入射方向
ωh=ωo+ωiωo+ωi\omega_h = \frac{\omega_o + \omega_i}{\Vert \omega_o + \omega_i \Vert}ハーフベクトル
G\mathcal{G}幾何表面geometric surface
ωg=(0,0,1)\omega_g = (0,0,1)幾何法線geometric normal
M\mathcal{M}微小面microsurface
pmp_m微小面上の点microsurface point
ωm=(xm,ym,zm)\omega_m = (x_m, y_m, z_m)微小面の法線microsurface normal
ω1ω2\omega_1 \cdot \omega_2ドット積dot product
ω1ω2\vert \omega_1 \cdot \omega_2 \vertドット積の絶対値absolute value of the dot product
ω1ω2\langle \omega_1 \cdot \omega_2 \rangleクランプされたドット積clamped dot product0 if ω1ω2<00 \text{ if } \omega_1 \cdot \omega_2 < 0
χ+(a)\chi^+(a)ヘヴィサイド関数Heaviside function1 if a>0 and 0 if a01 \text{ if } a > 0 \text{ and } 0 \text{ if } a \le 0
δ(a)\delta(a)ディラックのデルタ分布Dirac delta distribution+δ(a)da=1\int_{-\infty}^{+\infty}{\delta(a) da} = 1
表記意味単位
L(ωo)L(\omega_o)方向ωo\omega_oにおける放射輝度W/sr/m2W/sr/m^2
L(ωo,pm)L(\omega_o, p_m)pmp_mでの方向ωo\omega_oにおける放射輝度W/sr/m2W/sr/m^2
L(ωo,M)L(\omega_o, \mathcal{M})微小面M\mathcal{M}上での方向ωo\omega_oにおける放射輝度W/sr/m2W/sr/m^2
ρ(ωo,ωi)\rho(\omega_o, \omega_i)BRDF1/sr1/sr
ρM(ωo,ωi,ωz)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_z)法線ωm\omega_mのマイクロBRDF1/sr1/sr
D(ωm)D(\omega_m)法線分布m2/srm^2/sr
Dωo(ωm)D_{\omega_o}(\omega_m)ωo\omega_oからの可視法線分布1/sr1/sr
G1(ωo,pm)G_1(\omega_o, p_m)pmp_mでの空間的マスキング関数(二値)-
G1(ωi,pm)G_1(\omega_i, p_m)pmp_mでの空間的シャドーイング関数(二値)-
G2(ωo,ωi,pm)G_2(\omega_o, \omega_i, p_m)pmp_mでの空間的マスキング・シャドーイング関数(二値)-
G1(ωo,ωm)G_1(\omega_o, \omega_m)法線ωm\omega_mの統計的マスキング関数([0,1][0, 1]の範囲)-
G1(ωi,ωm)G_1(\omega_i, \omega_m)法線ωm\omega_mの統計的シャドーイング関数([0,1][0, 1]の範囲)-
G2(ωo,ωi,ωm)G_2(\omega_o, \omega_i, \omega_m)法線ωm\omega_mの統計的マスキング・シャドーイング関数([0,1][0, 1]の範囲)-

2. Masking関数の導出(Derivation of the Masking Function)

2.1. 表面上での放射輝度の計測(Measuring Radiance on a Surface)

(図1:表面M\mathcal{M}の出射放射輝度は、出射方向への投影面積の割合fractionsで重み付けされた、表面の各点からの放射輝度の平均である。)

放射輝度radianceは立体角からある領域を通過するエネルギー密度で、単位はW/sr/m2\text{W}/\text{sr}/\text{m}^2である。方向ωo\omega_oに出射する面M\mathcal{M}の放射輝度L(ωo,M)L(\omega_o, \mathcal{M})は、出射方向に観測される投影面積projected areaにより重み付けされた、表面上の各区間patchの中心点pmp_mと出射方向ωo\omega_oに対する放射輝度L(ωo,pm)L(\omega_o, p_m)を積分したものである。

L(ωo,M)=Mprojected area(pm)L(ωo,pm)dpmMprojected area(pm)dpm(1)L(\omega_o, \mathcal{M}) = \frac{\int_{\mathcal{M}} \text{projected area}(p_m) L(\omega_o, p_m) dp_m}{\int_{\mathcal{M}} \text{projected area}(p_m) dp_m} %\label{eq:1} \tag{1}

出射方向に投影される表面上の各地点での面積は視点依存であり、分母の積分Mprojected area(pm)dpm\int_{\mathcal{M}} \text{projected area}(p_m) dp_mは正規化係数である。この正規化係数は式全体が放射輝度を単位とするよう調整している。

2.2 マイクロファセット統計学(Microfacet Statistics)

幾何的表面G\mathcal{G}と呼ばれる表面の平面領域を考える。その面積は慣例に従い、Gdpg=1[m2]\int_{\mathcal{G}}dp_g = 1 [\text{m}^2]である。マイクロファセットモデルは、真の表面がマイクロサーフェスM\mathcal{M}と呼ばれるマイクロファセットの集合の形に幾何的表面からオフセットしたものであると仮定する。正確に言うならば、ジオメトリG\mathcal{G}の法線がωg\omega_gであるとすると、M\mathcal{M}ωg\omega_g方向にG\mathcal{G}上に投影されたマイクロファセットの点の集合である。マイクロサーフェスM\mathcal{M}の各点pmp_mは法線ωm(pm)\omega_m(p_m)を持つ。すなわち、ωm:MΩ\omega_m : \mathcal{M} \rightarrow \Omegaは、マイクロサーフェス上の点からその点の面法線ベクトルへの写像である。このベクトルは(xm,ym,zm)(x_m, y_m, z_m)として表される。

(図2:幾何的表面とマイクロサーフェス)

マイクロファセット理論はマイクロサーフェスの散乱の特性を統計的にモデル化したものである。したがって、数式は空間的に記述するよりも統計的に記述したほうがこの研究では便利に扱うことができる。マイクロファセット理論において、その統計は球領域Ω\Omegaにおける法線空間として定義される。

法線分布(The Distribution of Normals)

マイクロサーフェス上の積分を球上の積分に関連付けるため、すなわち、空間的な積分から統計的な積分に変換するため、領域を切り替えるときの面積変化を計測するツールとして、法線分布the distribution of normalsを導入する。これはm2/sr\text{m}^2/\text{sr}を単位とし、以下で定義される。

D(ω)=Mδω(ωm(pm))dpm(2)D(\omega) = \int_{\mathcal{M}} \delta_{\omega}(\omega_m(p_m)) dp_m %\label{eq:2} \tag{2}

ここで、Diracのデルタ分布は、その引数の逆数である、1/sr1/\text{sr}を単位とする。

単位球Ω\Omegaのある領域ΩΩ\Omega' \subset \Omegaと、すべての点を含むマイクロサーフェスM\mathcal{M}の部分集合MM\mathcal{M}' \subset \mathcal{M}を考えたとき、ωm(pm)\omega_m(p_m)Ω\Omega'の要素であるとすると以下が成り立つ。

pmM    ωm(pm)Ω(3)p_m \in \mathcal{M}' \iff \omega_m(p_m) \in \Omega' %\label{eq:3} \tag{3}

つまり、単位球Ω\Omegaのいずれの領域ΩΩ\Omega' \subset \Omega上での法線分布の積分が、Ω\Omega'に対応する法線を有するすべての点の集合M\mathcal{M}'の面積として求められる、という性質を持つ。

Mdpm=ΩD(ωm)dωm(4)\int_{\mathcal{M}'} dp_m = \int_{\Omega'} D(\omega_m)d\omega_m %\label{eq:4} \tag{4}

結果として、法線分布の積分はマイクロサーフェスの面積と同じになる。

microsurface area=Mdpm=ΩD(ωm)dωm(5)\text{microsurface area} = \int_{\mathcal{M}} dp_m = \int_{\Omega} D(\omega_m)d\omega_m %\label{eq:5} \tag{5}
空間的な数式と統計的な数式(Spatial and Statistical Equations)

DDの定義の結果として、f(ωm)f(\omega_m)がいかなるマイクロサーフェスの法線の関数であっても、ffの空間的な積分は統計的な積分に入れ替えることができる。

Mf(ωm(pm))dpm=Ωf(ωm)D(ωm)dωm(6)\int_{\mathcal{M}} f(\omega_m(p_m))dp_m = \int_{\Omega}f(\omega_m) D(\omega_m)d\omega_m %\label{eq:6} \tag{6}

ここで、左辺は空間的な積分であり、右辺は統計的な積分である。この性質は、図3(a)にてffが内積の場合として用いられている。

統計的関数(Statistical Functions)

g(pm)g(p_m)がマイクロサーフェス上に定義された空間的な関数であるとすると、関連する統計的な関数g(ωm)g(\omega_m)を定義することができる。

g(ω)=Mδω(ω(pm))g(pm)dpmMδω(ωm(pm))dpm(7)g(\omega) = \frac{\int_{\mathcal{M}} \delta_{\omega}(\omega(p_m)) g(p_m) dp_m}{\int_{\mathcal{M}} \delta_{\omega}(\omega_m(p_m)) dp_m} %\label{eq:7} \tag{7}

この統計的な関数は、以下のような統計的な積分で用いることができる。

Mg(pm)dpm=Ωg(ωm)D(ωm)dωm(8)\int_{\mathcal{M}} g(p_m)dp_m = \int_{\Omega}g(\omega_m) D(\omega_m)d\omega_m %\label{eq:8} \tag{8}

この性質は、図3(c)にてggがmasking関数G1G_1の場合として用いられている。

2.3. マイクロファセットの投影(Microfacet Projections)

(a) 幾何的な法線ωg\omega_gの方向に投影したときのマイクロサーフェスの投影面積

幾何的な法線の方向に投影したマイクロサーフェスの面積は幾何的表面の面積であり、その値は慣例的に1[m2]1 [\text{m}^2]である(図3(a))。したがって、ジオメトリへの法線分布の投影は正規化される。

Ω(ωmωg)D(ωm)dωm=M(ωm(pm)ωg)dpm=Gdpg=1[m2](9)\int_\Omega (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m = \int_\mathcal{M} (\omega_m(p_m) \cdot \omega_g) dp_m = \int_\mathcal{G} dp_g = 1 [\text{m}^2] %\label{eq:9} \tag{9}
(b) 出射方向ωo\omega_oに投影したときの幾何的表面の投影面積

幾何的表面は1[m2]1 [\text{m}^2]であり、それが出射方向ωo\omega_oに投影したときの投影面積は、入射角θo\theta_oのコサインをかけた面積に等しい(図3(b))。

projected area=(ωoωg)area=cosθo(10)\text{projected area} = (\omega_o \cdot \omega_g) \cdot \text{area} = \cos \theta_o %\label{eq:10} \tag{10}
(c) 出射方向ωo\omega_oに投影したときの可視visibleマイクロサーフェスの投影面積

出射方向に投影したときの幾何的表面の面積は、投影された”見えているvisible”マイクロサーフェスの面積である(図3(c))。これはそれぞれの可視マイクロサーフェスの投影面積を合計したものである。法線を持つマイクロファセットの投影面積は幾何的投影係数geometric projection factorωo,ωm\langle \omega_o, \omega_m \rangleとして現れる。ここで、ωo,ωm\langle \omega_o, \omega_m \rangle[0,1][0, 1]にクランプされる内積であり、背面を向いたマイクロファセットは見えないことを表す。マイクロサーフェスに遮蔽されているマイクロファセットは投影面積にその影響を与えず、合計からは除外されなければならない。これは、点pmp_mが遮蔽されていれば00を、見えていれば11を返す空間的なmasking関数G1(ωo,pm)G_1(\omega_o, p_m)をかけることにより達成される。この投影面積は以下で求められる。

projected area=MG1(ωo,pm)ωo,ωm(pm)dpm(11)\text{projected area} = \int_\mathcal{M} G_1(\omega_o, p_m) \langle \omega_o, \omega_m(p_m) \rangle dp_m %\label{eq:11} \tag{11}

統計的なmasking関数G1(ωo,ωm)G_1(\omega_o, \omega_m)は範囲[0,1][0, 1]を持ち、以下の出射方向ωo\omega_oに対して可視である法線ωm\omega_mを持つマイクロファセットの割合を求める。

G1(ωo,ω)=Mδω(ωm(pm))G1(ωo,pm)dpmMδω(ωm(pm))dpm(12)G_1(\omega_o, \omega) = \frac{\int_\mathcal{M}\delta_{\omega}(\omega_m(p_m))G_1(\omega_o, p_m)dp_m}{\int_\mathcal{M}\delta_{\omega}(\omega_m(p_m))dp_m} %\label{eq:12} \tag{12}

統計的な数式は以下として求められる。

projected area=ΩG1(ωo,ωm)ωo,ωmD(ωm)dωm(13)\text{projected area} = \int_\Omega G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m %\label{eq:13} \tag{13}

(図3:マイクロファセット理論における投影)

2.4. masking関数の制約(A Constraint on the Masking Function)

図3では、式(13)で示される可視マイクロサーフェスの投影面積は、式(10)で示される幾何的表面の投影面積にピタリと一致する、というマイクロファセット理論の根本的な性質を取り上げた。この等価性は統計的なmasking関数に以下の式で表される制約を課す。

cosθo=ΩG1(ωo,ωm)ωo,ωmD(ωm)dωm(14)\boxed{ \cos \theta_o = \int_\Omega G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m } %\label{eq:14} \tag{14}

物理ベースのmasking関数G1G_1はこの制約を常に満たさなければならない。しかし、この制約はG1G_1を完全に決定するものではない。なぜなら、masking関数G1G_1ωo\omega_oωm\omega_mの2つを取る関数であり、出射方向ωo\omega_oを定めても、この制約を満たすG1G_1は無限に存在するためである。そこで、解をひとつに定めるため、第二の制約としてマイクロサーフェス・プロファイルmicrosurface profileを導入する。

これを直感的に理解する方法は、法線分布がマイクロサーフェス上の各法線の割合のみを示すヒストグラムのようなものだと考えることである。そうすると、法線分布からは法線がどのように組織しているかという情報が得られないことが分かる。そのため、マイクロサーフェスのプロファイルが必要になる。さらに、図4に示す通り、プロファイルの選択は、出来上がるBRDFの形状に重大な影響力を持ち得る。マイクロサーフェス・プロファイルが決まれば、masking関数は完全に決定され、その完全形式exact formを導き出すことができる。

2.5. まとめ(Summary)

“masking関数(または、幾何減衰係数geometric attenuation factor)の中から一体どれを使えば良いの?それって物理ベースなの?“というmasking関数に関するよくある質問がある。

この節では以下を示した。

  • いずれの方向に投影しても、可視マイクロサーフェスの投影面積は幾何的表面の投影面積と等価である。
  • masking関数はこの等価性により制約を受ける。より正しく言うなら、物理ベースのmasking関数は式(14)で示される数式を常に満たす。
  • とはいえ、masking関数はこの制約により完全に定まるものではない。
  • masking関数はマイクロサーフェス・プロファイルを選択することで一意に定まる。
  • マイクロサーフェス・プロファイルはBRDFの形状に影響を及ぼす。

(図4:法線分布が同じでプロファイルが異なるマイクロサーフェスは結果として別々のBRDFになる)

3. マイクロファセットベースBRDF(Microfacet-Based BRDFs)

(図5:マイクロサーフェスの法線分布(ωmωg)D(ωm)(\omega_m \cdot \omega_g) D(\omega_m)は表面に内在する特性である一方、可視法線分布Dωo(ωm)D_{\omega_o}(\omega_m)は視点依存である。)

3.1. 可視法線分布(Distribution of Visible Normals)

式(1)をマイクロファセットのパラダイムで定式化すると以下のようになる。

L(ωo,M)=1cosθoΩL(ωo,ωm)G1(ωo,ωm)ωo,ωmD(ωm)dωm(15)L(\omega_o, \mathcal{M}) = \frac{1}{\cos\theta_o} \int_\Omega L(\omega_o, \omega_m) G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m %\label{eq:15} \tag{15}

ここで、L(ωo,M)L(\omega_o, \mathcal{M})はマイクロサーフェスから出射する放射輝度を、L(ωo,ωm)L(\omega_o, \omega_m)は法線ωm\omega_mを持つマイクロファセットから出射する放射輝度を、1cosθo\frac{1}{\cos\theta_o}はここでは幾何的表面の投影面積による積分を正規化する係数を表す。つまり、図5で示すように、マイクロサーフェスから出射する放射輝度は、可視法線分布the distribution of visible normalsで重み付けされた、各マイクロファセットから出射する放射輝度の合計であると理解することができる。この可視法線分布は、各法線の投影面積とmasking関数で重み付けされた法線分布として表される。

Dωo(ωm)=G1(ωo,ωm)ωo,ωmD(ωm)cosθo(16)D_{\omega_o}(\omega_m) = \frac{G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m)}{cos\theta_o} %\label{eq:16} \tag{16}

この可視法線分布Dωo(ωm)D_{\omega_o}(\omega_m)は正規化されているということが重要で、この性質を利用すれば、放射輝度の平均を取るための重み関数として用いることができる。

L(ωo,M)=ΩL(ωo,ωm)Dωo(ωm)dωm(17)L(\omega_o, \mathcal{M}) = \int_\Omega L(\omega_o, \omega_m) D_{\omega_o}(\omega_m) d\omega_m %\label{eq:17} \tag{17}

節2.1図1で示した通り、放射輝度の平均はその重み関数が正規化されている場合にのみ有効である。上の式は、正しく正規化されることが保証されている式(1)の分母の積分をmasking関数G1G_1で表したものであるため、うまく定義されているwell definedと言える。もちろん、式(14)を用いて、式(16)cosθo\cos\theta_oに入れ替えることで、この法線分布が正規化されていることを確かめることができる。

ΩDωo(ωm)dωm=ΩG1(ωo,ωm)ωo,ωmD(ωm)cosθodωm=ΩG1(ωo,ωm)ωo,ωmD(ωm)dωmΩG1(ωo,ωm)ωo,ωmD(ωm)dωm=1(18)\begin{split} \int_\Omega D_{\omega_o}(\omega_m) d\omega_m &= \int_\Omega \frac{G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m)}{\cos\theta_o} d\omega_m \\ &= \frac{\int_\Omega G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m}{\int_\Omega G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m)d \omega_m} \\ &= 1 \end{split} %\label{eq:18} \tag{18}

同様にして、式(15)式(17)から平均出射照射輝度average outgoing radianceが正しく正規化されていることを強調する式(1)と同じ形式で表現できる。

L(ωo,M)=ΩL(ωo,ωm)G1(ωo,ωm)ωo,ωmD(ωm)dωmΩG1(ωo,ωm)ωo,ωmD(ωm)dωm(19)L(\omega_o, \mathcal{M}) = \frac{\int_\Omega L(\omega_o, \omega_m) G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d \omega_m}{\int_\Omega G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m)d \omega_m} %\label{eq:19} \tag{19}

3.2. BRDFの構築(Construction of the BRDF)

可視法線分布をもとにBRDFを作成することを考える。各マイクロファセットの放射輝度L(ωo,ωm)L(\omega_o, \omega_m)は、各マクロファセットと関連したマイクロBRDFmicro-BRDFの項ρM(ωo,ωi,ωm)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m)を入射する放射輝度L(ωi)L(\omega_i)とともに入射方向の領域Ωi\Omega_i上で積分したものとして表される。

L(ωo,ωm)=ΩidL(ωo,ωm)dωidωi=ΩiρM(ωo,ωi,ωm)ωi,ωmL(ωi)dωi(20)L(\omega_o, \omega_m) = \int_{\Omega_i} \frac{dL(\omega_o, \omega_m)}{d\omega_i} d\omega_i = \int_{\Omega_i} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_i, \omega_m \rangle L(\omega_i) d\omega_i %\label{eq:20} \tag{20}

ここで、マイクロBRDFρM(ωo,ωi,ωm)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m)は出射する放射輝度の微分dL(ωo,ωm)dL(\omega_o, \omega_m)と入射する放射照度の微分ωi,ωmL(ωi)dωi\langle \omega_i, \omega_m \rangle L(\omega_i) d\omega_iの割合を表す。

ρM(ωo,ωi,ωm)=dL(ωo,ωm)ωi,ωmL(ωi)dωi(21)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) = \frac{dL(\omega_o, \omega_m)}{\langle \omega_i, \omega_m \rangle L(\omega_i) d\omega_i} %\label{eq:21} \tag{21}

次に、式(17)を入射する放射照度に関して微分し、式(21)によりdL(ωo,ωm)dL(\omega_o, \omega_m)を置き換える。

dL(ωo,M)=ΩdL(ωo,ωm)Dωo(ωm)dωm=L(ωi)dωiΩρM(ωo,ωi,ωm)ωi,ωmDωo(ωm)dωm(22)\begin{split} dL(\omega_o, \mathcal{M}) &= \int_{\Omega} dL(\omega_o, \omega_m) D_{\omega_o}(\omega_m) d\omega_m \\ &= L(\omega_i) d\omega_i \int_{\Omega} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_i, \omega_m \rangle D_{\omega_o}(\omega_m) d\omega_m \end{split} %\label{eq:22} \tag{22}

ここで、L(ωi)dωiL(\omega_i)d\omega_iωm\omega_mに依存していないので積分の外に出すことができる。

マクロBRDFmacro-BRDFは以下の式で定義されるため、

dL(ωo,M)=ρ(ωo,ωi)cosθiL(ωi)dωi(23)dL(\omega_o, \mathcal{M}) = \rho(\omega_o, \omega_i) \cos\theta_i L(\omega_i) d\omega_i %\label{eq:23} \tag{23}

以下が成り立つ。

ρ(ωo,ωi)=dL(ωo,M)cosθiL(ωi)dωi=1cosθiΩρM(ωo,ωi,ωm)ωi,ωmDωo(ωm)dωm(24)\begin{split} \rho(\omega_o, \omega_i) &= \frac{dL(\omega_o, \mathcal{M})}{\cos\theta_i L(\omega_i) d\omega_i} \\ &= \frac{1}{\cos\theta_i} \int_{\Omega} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_i, \omega_m \rangle D_{\omega_o}(\omega_m) d\omega_m \end{split} %\label{eq:24} \tag{24}

Dωo(ωm)D_{\omega_o}(\omega_m)式(16)で置き換えれば、以下が成り立つ。

ρ(ωo,ωi)=1cosθocosθiΩρM(ωo,ωi,ωm)ωo,ωmωi,ωmG1(ωo,ωm)D(ωm)dωm=1ωgωoωgωiΩρM(ωo,ωi,ωm)ωo,ωmωi,ωmG1(ωo,ωm)D(ωm)dωm(25)\begin{split} \rho(\omega_o, \omega_i) &= \frac{1}{\cos\theta_o \cos\theta_i} \int_{\Omega} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_1(\omega_o, \omega_m) D(\omega_m) d\omega_m \\ &= \frac{1}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} \int_{\Omega} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_1(\omega_o, \omega_m) D(\omega_m) d\omega_m \end{split} %\label{eq:25} \tag{25}

この式は1回目のバウンスbounceの後、表面付近vicinity of the surfaceを離れるに、どれだけのレイrayが反射されたかについてモデル化するだけである(図6(b))、という理解が重要である。一方で、BRDFモデルは、すべての微小散乱microscatteringを経て、表面を離れたにレイがどのように分布しているかを説明しなければならない。反射したレイが表面付近を離れる前に再びマイクロサーフェスに当たって別の方向に反射することもあり得るため、表面付近を離れるのが前か後かによってこの分布は異なってくる(図6(d))。ここで導出されるBRDFモデルは、表面での1回目のバウンスのみを説明し、複数回のバウンスに関与するレイ(図6(c)の黒矢印)はモデルからは排除される。これは、shadowing関数を導入することで達成される。実際には、masking関数G1G_1をmasking-shadowing関数G2G_2に置き換える。

ρ(ωo,ωi)=1ωgωoωgωiΩρM(ωo,ωi,ωm)ωo,ωmωi,ωmG2(ωo,ωi,ωm)D(ωm)dωm(26)\rho(\omega_o, \omega_i) = \frac{1}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} \int_{\Omega} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_2(\omega_o, \omega_i, \omega_m) D(\omega_m) d\omega_m %\label{eq:26} \tag{26}

3.3. 鏡面的マイクロファセットにおけるBRDFの構築(Construction of the BRDF with specular microfacets)

鏡のようなマイクロファセットのマイクロBRDFは以下のようになる。

ρM(ωo,ωi,ωm)=ωhωiF(ωo,ωh)δωh(ωm)ωiωh=F(ωo,ωh)δωh(ωm)4ωiωh2(27)\begin{split} \rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) &= \left\lVert \frac{\partial \omega_h}{\partial \omega_i} \right\rVert \frac{F(\omega_o, \omega_h) \delta_{\omega_h}(\omega_m)}{| \omega_i \cdot \omega_h |} \\ &= \frac{F(\omega_o, \omega_h) \delta_{\omega_h}(\omega_m)}{4 | \omega_i \cdot \omega_h |^2} \end{split} %\label{eq:27} \tag{27}

ここで、ωhωi=14ωiωh\left\lVert \frac{\partial \omega_h}{\partial \omega_i} \right\rVert = \frac{1}{4|\omega_i \cdot \omega_h|}鏡映変換reflection transformationヤコビアンJacobian[Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]を、FFはフレネル項を表す。式(26)について、ρM(ωo,ωi,ωm)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m)式(27)で、Dωo(ωm)D_{\omega_o}(\omega_m)式(16)で置き換えると、以下が求められる。

ρ(ωo,ωi)=1ωgωoωgωiΩF(ωo,ωh)δωh(ωm)4ωiωh2ωo,ωmωi,ωmG2(ωo,ωi,ωm)D(ωm)dωm(28)\rho(\omega_o, \omega_i) = \frac{1}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} \int_{\Omega} \frac{F(\omega_o, \omega_h)\delta_{\omega_h}(\omega_m)}{4|\omega_i \cdot \omega_h|^2} \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_2(\omega_o, \omega_i, \omega_m) D(\omega_m) d\omega_m %\label{eq:28} \tag{28}

デルタ関数δωh(ωm)\delta_{\omega_h}(\omega_m)の積分はωm=ωh\omega_m = \omega_hとした被積分関数に置き換えることができ、ωoωh=ωiωh\omega_o \cdot \omega_h = \omega_i \cdot \omega_hが成り立つため、式を以下にまで簡略化できる。

ρ(ωo,ωi)=F(ωo,ωh)G2(ωo,ωi,ωh)D(ωh)4ωgωoωgωi(29)\rho(\omega_o, \omega_i) = \frac{F(\omega_o, \omega_h) G_2(\omega_o, \omega_i, \omega_h) D(\omega_h)}{4|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} %\label{eq:29} \tag{29}

これにより、よく知られた、鏡面的マイクロファセットベースBRDFの数式を求めることができる[Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]

3.4. 拡散的マイクロファセットにおけるBRDFの構築(Construction of the BRDF with diffuse microfacets)

拡散的マイクロファセットのマイクロBRDFは定数である。

ρM(ωo,ωi,ωm)=1π(30)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m) = \frac{1}{\pi} %\label{eq:30} \tag{30}

式(26)について、ρM(ωo,ωi,ωm)\rho_{\mathcal{M}}(\omega_o, \omega_i, \omega_m)をを式(30)で、Dωo(ωm)D_{\omega_o}(\omega_m)式(16)で置き換えると、以下が求められる。

ρ(ωo,ωi)=1π1ωgωoωgωiΩωo,ωmωi,ωmG2(ωo,ωi,ωm)D(ωm)dωm(31)\rho(\omega_o, \omega_i) = \frac{1}{\pi} \frac{1}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} \int_{\Omega} \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_2(\omega_o, \omega_i, \omega_m) D(\omega_m) d\omega_m %\label{eq:31} \tag{31}

この式は解析的な解analytical solutionではない。 Oren and Nayar [1994Oren, M. and Nayar, S. K. 1994. Generalization of Lambert's reflectance model. Proceedings of the 21st annual conference on computer graphics and interactive techniques 239–246. 10.1145/192161.192213. https://cave.cs.columbia.edu/Statics/publications/pdfs/Oren_SIGGRAPH94.pdf.] はある条件下でのこの関数の解析的フィッティングを提案している。このとき、DD球面ガウス関数spherical Gaussianであり(Beckmann分布と混同しないように)、G2G_2V型空洞V-cavityのmasking-shadowing関数である。

3.5. BRDFの正規化テスト(The BRDF Normalization Test)

The White Furnace Test

双方向散乱分布関数(BSDF)ssは、上半分の半球上に定義される双方向反射率分布関数(BRDF)ρ\rhoと、下半分の半球上に定義される双方向透過率分布関数(BTDF)ttの和である。

s(ωo,ωi)=ρ(ωo,ωi)+t(ωo,ωi)(32)s(\omega_o, \omega_i) = \rho(\omega_o, \omega_i) + t(\omega_o, \omega_i) %\label{eq:32} \tag{32}

入射する放射輝度が吸収されない表面である場合、レイの放射輝度は散乱中において完全に保存される。したがって、表面での吸収が00のときに散乱したレイの分布が完全に正規化されるかどうかは、マイクロファセットベースの散乱モデルで確認しておきたい重要な性質のひとつである。

Ωis(ωo,ωi)ωgωidωi=1ωo(33)\int_{\Omega_i} s(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i = 1 \forall \omega_o %\label{eq:33} \tag{33}

フレネル項が常に11であるなら、レイは透過が一切起こらないため、BTDFはt=0t = 0となり、散乱モデルは完全にBRDFによって定義される(つまり、s=ρs = \rhoとなる)。この場合、レイはエネルギーを失うことなくすべて反射され、その分布は正規化される。これはWhite Furnace Testの式として以下のようにモデル化される。

Ωiρ(ωo,ωi)ωgωidωi=1(34)\int_{\Omega_i} \rho(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i = 1 %\label{eq:34} \tag{34}

直観として、これは、出射方向から放たれたcastレイが何度か散乱してから表面を離れる様を表現していると考えることができる。しかし、図6(c)節3.2が示す通り、複数回バウンスするレイはshadowing関数によりBRDFから取り除かれているため、一般的な解析的BRDFはマイクロサーフェス上での複数回の散乱をモデル化していない。“完璧な反射板perfect reflector”としてのマイクロサーフェスをパラメータ化したものであっても、一般的なBRDFモデルでは積分が11にならず、White Furnace Testの式を満たさないのは、ここに理由がある。

The Weak White Furnace Test

White Furnace Testは、最初の散乱事象しか組み込まれていない、一般的なBRDFモデルを検証するのには使えない。しかしながら、一般的なBRDFモデルが満たすべき、制限を緩和したテストを設計することはできる。1回目のバウンスの直後に表面を離れるであるレイの分布が正規化されていることを確かめればよいのだ(図6(b))。これは、masking-shadowing関数をmaskingのみに置き換える(G2(ωo,ωi,ωh)=G1(ωo,ωh)G_2(\omega_o, \omega_i, \omega_h) = G_1(\omega_o, \omega_h))ことで達成できる。式(29)からフレネル項とshadowing関数を除けば以下の式が求められる。

ρ(ωo,ωi)=G1(ωo,ωh)D(ωh)4ωgωoωgωi(35)\rho(\omega_o, \omega_i) = \frac{G_1(\omega_o, \omega_h) D(\omega_h)}{4|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} %\label{eq:35} \tag{35}

この式でWhite Furnace Testを置き換えれば、Weak White Furnace Testの式が以下のように求められる。

ΩiG1(ωo,ωh)D(ωh)4ωgωodωi=1(36)\boxed{ \int_{\Omega_i} \frac{G_1(\omega_o, \omega_h) D(\omega_h)}{4|\omega_g \cdot \omega_o|} d\omega_i = 1 } %\label{eq:36} \tag{36}

この条件は、式(14)を満足する適切なmasking関数G1G_1によってのみ満たすことができる。

式(31)G2(ωo,ωi,ωh)=G1(ωo,ωh)G_2(\omega_o, \omega_i, \omega_h) = G_1(\omega_o, \omega_h)で置き換え、入射方向に対して積分することにより、拡散的マイクロファセットにおけるBRDFのための同様のテストを定義した。

Ωi1π1ωgωoωgωiΩωo,ωmωi,ωmG1(ωo,ωm)D(ωm)dωmωgωidωi=1π1ωgωoΩiΩωo,ωmωi,ωmG1(ωo,ωm)D(ωm)dωmdωi=1(37)\begin{split} & \int_{\Omega_i} \frac{1}{\pi} \frac{1}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} \int_{\Omega} \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_1(\omega_o, \omega_m) D(\omega_m) d\omega_m |\omega_g \cdot \omega_i| d\omega_i \\ &= \frac{1}{\pi} \frac{1}{|\omega_g \cdot \omega_o|} \int_{\Omega_i} \int_{\Omega} \langle \omega_o, \omega_m \rangle \langle \omega_i, \omega_m \rangle G_1(\omega_o, \omega_m) D(\omega_m) d\omega_m d\omega_i \\ &= 1 \end{split} %\label{eq:37} \tag{37}

(図6:鏡面的マイクロファセットベースBRDFの正規化)

3.6. まとめ(Summary)

BRDFの正規化に関するよくある質問として、“マイクロファセットベースBRDFが積分しても11にならないんだけど、これってちゃんと正規化されてないんじゃないの?“というものがある。

このセクションでは、以下のアイデアを開発することで、この質問に対する答えとした。

  • BRDFは可視法線分布により生成される。
  • 可視法線分布は、BRDFがエネルギーを保存することを保証するために正規化されていなければならない。
  • 可視法線分布の正規化係数はmasking関数である。
  • マイクロファセットベースBRDFは正規化されるべきである。すなわち、吸収せず、透過しない材質ではピッタリ1に積分される。
  • マイクロファセットベースBRDFのshadowing関数はマイクロサーフェスにおける複数回の散乱事象から最初の散乱事象を切り離すために用いる。shadowingは2回以上の散乱事象を破棄(0に設定)し、複数回の散乱事象をモデル化する項が存在しない場合にはBRDFを人為的に非正規化されたままにする。
  • マイクロファセットベースBRDFの標準形は、フレネルとshadowingを取り除いて、masking関数によって正規化される。物理ベースmasking関数は常に式(36)式(37)を満たす。これは我々が”Weak White Furnace Test”と呼ぶものである。

shadowingが組み込まれていないWeak White Furnace Testは、masking関数が物理的に正しいことを確認する簡単な方法である。これは、一般的なBRDFモデルがshadowingを取り除いて用いられるべきであるという意味ではないことに特に気を付けたい。shadowingとは、一般的なBRDFモデルには組み込まれていない複数回のバウンスの後に反射するエネルギーから最初のバウンスの後に反射するエネルギーを分離することである。

4. 一般的な物理ベースmasking関数と非物理ベースmasking関数(Common Physically Based and Non-Physically Based Masking Functions)

4.1. Smithのマイクロサーフェス・プロファイル(The Smith Microsurface Profile)

法線・masking独立(Normal/Masking Independence)

Smithのマイクロサーフェス・プロファイルは、マイクロサーフェスが自己相関してautocorrelateいない、すなわち、マイクロサーフェスの一点での高さ(または法線)と、(最近接点であっても)どの近傍点の高さとの間にも相関correlationがないことを仮定する。これは、図7(右)が示す通り、連続的な表面ではなくランダムなマイクロファセットの集合であることを意味する。つまり、マイクロサーフェスの高さや法線は独立した乱数である。

(図7:マイクロサーフェスとそれらの自己相関関数。(左)大きな自己相関距離を伴う現実世界の連続的なマイクロサーフェス。(右)相関のない表面。ここでは、Smithモデルの通り、各マイクロファセットはその近傍と相関しない。)

このモデルから、masking関数によって与えられる確率G1(ωo,ωm)G_1(\omega_o, \omega_m)は、背面を向いていない(ωoωm>0\omega_o \cdot \omega_m > 0)法線について、法線の向きωm\omega_mに対して独立である、ということを導き出せる。法線ωm\omega_mはマイクロファセットの 近いlocal 所での性質である一方、maskingの原因となる潜在的な遮蔽potential occlusion responsible for maskingはマイクロサーフェス上の他の場所で起こる、すなわち、マイクロファセットの 遠いdistant 所での性質であることが、直観として理解できる。ただし、依然としてミクロスケールでの話である。マイクロサーフェスが自己相関しないため、近い所での性質は遠い所での性質に対して独立であり、masking関数は以下の分割された形式で表現できる。

G1(ωo,ωm)=G1local(ωo,ωm)G1dist(ωo)(38)G_1(\omega_o, \omega_m) = G_1^{\text{local}}(\omega_o, \omega_m) G_1^{\text{dist}}(\omega_o) %\label{eq:38} \tag{38}

ここで、近い所でのmasking関数は、背面のマイクロファセットを破棄するかどうかを二値化したものである。

G1local(ωo,ωm)=χ+(ωoωm)(39)G_1^{\text{local}}(\omega_o, \omega_m) = \chi^+(\omega_o \cdot \omega_m) %\label{eq:39} \tag{39}

そして、遠い所でのmasking関数G1dist(ωo)G_1^{\text{dist}}(\omega_o)は、近い所での向きωm\omega_mに対して独立である、マイクロサーフェスの遠い所での点による遮蔽確率を表す。

masking関数の導出(Derivation of the Masking Function)

式(38)式(14)のmasking関数を展開することで、以下の式が求められる。

cosθo=ΩG1(ωo,ωm)ωo,ωmD(ωm)dωm=ΩG1local(ωo,ωm)G1dist(ωo)ωo,ωmD(ωm)dωm=Ωχ+(ωoωm)G1dist(ωo)ωo,ωmD(ωm)dωm=G1dist(ωo)Ωωo,ωmD(ωm)dωm(40)\begin{split} \cos\theta_o &= \int_{\Omega} G_1(\omega_o, \omega_m) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m \\ &= \int_{\Omega} G_1^{\text{local}}(\omega_o, \omega_m) G_1^{\text{dist}}(\omega_o) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m \\ &= \int_{\Omega} \chi^+(\omega_o \cdot \omega_m) G_1^{\text{dist}}(\omega_o) \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m \\ &= G_1^{\text{dist}}(\omega_o) \int_{\Omega} \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m \end{split} %\label{eq:40} \tag{40}

ここで、G1dist(ωo)G_1^{\text{dist}}(\omega_o)ωm\omega_mに依存しないため積分の外に出すことができる。また、ωoωm<0\omega_o \cdot \omega_m < 0のとき00になるクランプされた内積がすでにあるので、階段関数χ+(ωoωm)\chi^+(\omega_o \cdot \omega_m)は冗長になるため取り除かれる。よって、出射方向ωo\omega_oから見て背面でない法線のmasking関数は以下の式で表される。

G1dist(ωo)=cosθoΩωo,ωmD(ωm)dωm(41)G_1^{\text{dist}}(\omega_o) = \frac{\cos\theta_o}{\int_{\Omega} \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m} %\label{eq:41} \tag{41}

したがって、完全なmasking関数は以下の式で表される。

G1(ωo,ωm)=χ+(ωoωm)cosθoΩωo,ωmD(ωm)dωm(42)\boxed{ G_1(\omega_o, \omega_m) = \chi^+(\omega_o \cdot \omega_m) \frac{\cos\theta_o}{\int_{\Omega} \langle \omega_o, \omega_m \rangle D(\omega_m) d\omega_m} } %\label{eq:42} \tag{42}

これは Ashikmin et al. [2000Ashikmin, M., Premože, S. and Shirley, P. 2000. A microfacet-based BRDF generator. Proceedings of the 27th annual conference on computer graphics and interactive techniques 65–74. 10.1145/344779.344814. https://dl.acm.org/doi/pdf/10.1145/344779.344814.] による法線・masking独立における厳密なexactmasking関数の積分形式である。彼らはこの積分式をmasking関数の前計算に用いた。その計算結果は実行時に効率的な評価を行うためのテーブルに格納していた。

Smithのmasking関数(The Smith Masking Function)

その文献では、Smithのmasking関数は11+Λ(ωo)\frac{1}{1 + \Lambda(\omega_o)}の形で表される。この関数はマイクロサーフェスの傾斜slopesにおける積分を表し、この形式はmasking確率をレイトレーシングによって定式化formulationすることにより導かれる[Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]。この定式化の欠点drawbackは結果の厳密さに重点が置かれていないことにある。このことで、Smithのmasking関数はたびたび近似として扱われている。

我々は、Ashikhminらの導出が同じ結果につながり、厳密さに重点が置かれているという利点を持つことを示した。つまり、積分範囲を法線から傾斜空間に変更することで、式(41)は以下の式で表すことができる。 詳しい導出は付録Aにて提示する。

G1dist(ωo,ωm)=11+Λ(ωo)G_1^{\text{dist}}(\omega_o, \omega_m) = \frac{1}{1 + \Lambda(\omega_o)}

そして、式(42)を以下の式に書き直すことができる。

G1(ωo,ωm)=χ+(ωoωm)1+Λ(ωo)(43)\boxed{ G_1(\omega_o, \omega_m) = \frac{\chi^+(\omega_o \cdot \omega_m)}{1 + \Lambda(\omega_o)} } %\label{eq:43} \tag{43}

ここで、11+Λ(ωo)\frac{1}{1 + \Lambda(\omega_o)}はSmithのmasking関数の一般的な形式であり[Brown 1980Brown, G. 1980. Shadowing by non-Gaussian random surfaces. IEEE Transactions on Antennas and Propagation 28, 6, 788–790. 10.1109/TAP.1980.1142437.; Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]、様々な確率論的表面に対して閉形式の解法closed-form solutionsが利用できる。したがって、法線・masking独立の仮定の下では、Smithのmasking関数は厳密である。

性質(Properties)

いまだに、解析的関数を計測データと比較するとしたら、モデルの予測は正確だが厳密ではないことが分かるだろう。もちろん、Smithは彼の定式を現実の測定値を比較し、それが良く適合しているが、それでもなお近似であることを発見している。しかし、彼の定式は彼のフレームワークの中でならば厳密であるため、その近似は彼の導出に起因してない。統計的モデル(例えば、Gaussian statistics)で現実の表面を説明しようとすることや、法線・masking独立を仮定することに起因している。

Smithのモデルにより仮定される相関のないマイクロサーフェスは、いくつかのメタリックなカーペイントに見られる、“金属フレークmetal flakes”を想起させるreminiscent[Rump et al. 2008Rump, M., Müller, G., Sarlette, R., Koch, D. and Klein, R. 2008. Photo-realistic rendering of metallic car paint from image-based measurements. Computer Graphics Forum 27, 2, 527–536. 10.1111/j.1467-8659.2008.01150.x. https://cg.cs.uni-bonn.de/backend/v1/files/publications/rump-2008-photo-realistic.pdf.]。しかし、現実での連続的な表面はより広い相関のある関数を持つ。 Bourlier et al. [2000Bourlier, C., Saillard, J. and Berginc, G. 2000. Effect of correlation between shadowing and shadowed points on the Wagner and Smith monostatic one-dimensional shadowing functions. IEEE Transactions on Antennas and Propagation 48, 3, 437–446. 10.1109/8.841905.] はSmithのmasking関数を、異なる自己相関関数(GaussianとLorentzian)を持つランダムな粗い面を数値的に計測したmasking関数と比較した。彼らの調査の結論は、ランダムな表面上の相関を無視するneglectことで生まれる誤差errorは、観測角がtan(θ)/α>0.5\tan(\theta) / \alpha > 0.5のときのみに顕著であるnoticeable、としている。ここで、σ2=α22\sigma^2 = \frac{\alpha^2}{2}は傾斜の分散である。Smithのmasking関数はこの場合に若干の過推定overestimationsが発生する傾向がある。Smithのmasking関数が一般的に相関のある表面上でも正確であり、相関のあるmasking関数に対する解析的な解が存在しないことを考えれば、コンピュータ・グラフィックスの文脈においてSmithのmasking関数を適用することは合理的reasonableであるように見える。しかしながら、 Ashikmin et al. [2000Ashikmin, M., Premože, S. and Shirley, P. 2000. A microfacet-based BRDF generator. Proceedings of the 27th annual conference on computer graphics and interactive techniques 65–74. 10.1145/344779.344814. https://dl.acm.org/doi/pdf/10.1145/344779.344814.] によって指摘されている通り、繰り返すパターンや構造的なパターン(例えば、織物fabric)における非ランダムな表面上の相関の影響は、重要性が高くなる可能性があり、専用のモデルに組み込まれなければならない。

Smithの平均化されたmasking関数(The Smith Averaged Masking Functions)

Smithは、高さや法線のような、マイクロサーフェスの異なる量を平均化したmasking関数導き出した[Smith 1967Smith, B. 1967. Geometrical shadowing of a random rough surface. IEEE Transactions on Antennas and Propagation 15, 5, 668–671. 10.1109/TAP.1967.1138991.]式(43)で表されるmasking関数G1(ωo,ωm)G_1(\omega_o, \omega_m)はマイクロサーフェスの高さを平均化した形式であり、BRDFの中で使われなければならないものである。もちろん、高さはBRDFに関係する法線に対して独立であるため、単純にそれらの平均を取ることができる。しかし、背面の法線を考慮しなかったりして、法線がすべて同じ方法で処理されていない場合がある。このBRDFモデルでは、外部の観測者viewerに対して見えているもののみが重要であるmatter。つまり、この観測者が観測できる放射輝度のみが重要である。もし表面上に何かがあっても、それが見えていなければ、BRDFには反映されないだろう。Simthは、これを直接扱っているわけではないが、彼のmasking関数の法線を平均化した形式を導き出した。彼は”法線のどれくらいが遮蔽されているか”という質問の答えを求めていた。これは、波動光学のモデルのような別の状況で、表面に固有の性質を調べるときに重要になる。本稿で注目している、幾何光学ベースのBRDFモデルでは重要ではない。

幾何的なマイクロファセットベースBRDFの問題において、実際には、“背面を向いていない法線のどれくらいが遮蔽されているか”、という若干異なる質問に関心がある。

4.2. V型空洞のマイクロサーフェス・プロファイル(The V-Cavity Microsurface Profile)

この節では、Smithのmasking関数のもっとも一般的な代替であるV型空洞V-cavities[Cook and Torrance 1982Cook, R. L. and Torrance, K. E. 1982. A reflectance model for computer graphics. ACM Trans. Graph. 1, 1, 7–24. 10.1145/357290.357293. https://graphics.pixar.com/library/ReflectanceModel/paper.pdf.; Oren and Nayar 1994Oren, M. and Nayar, S. K. 1994. Generalization of Lambert's reflectance model. Proceedings of the 21st annual conference on computer graphics and interactive techniques 239–246. 10.1145/192161.192213. https://cave.cs.columbia.edu/Statics/publications/pdfs/Oren_SIGGRAPH94.pdf.]に基づくmaskingモデルについて議論する。図8はV型空洞のマイクロサーフェスによる散乱モデルを図で示したものである。法線分布による1つのマイクロサーフェス上での散乱をモデル化するのではなく、このモデルは、分割したマイクロサーフェス上での散乱を計算し、それらの寄与を平均化する。各マイクロサーフェスは2つの法線ωm=(xm,ym,zm)\omega_m = (x_m, y_m, z_m)ωm=(xm,ym,zm)\omega_m' = (-x_m, -y_m, z_m)で構成され、各マイクロサーフェスの寄与は最後のBRDFにおいてωm,ωgD(ωm)\langle \omega_m, \omega_g \rangle D(\omega_m)で重み付けされる。

(図8:V型空洞の散乱モデル。1つのマイクロサーフェスでの散乱をモデル化するのではなく、このモデルは個々のマイクロサーフェスでの散乱を計算し、その結果を合成する。)

V型空洞マイクロサーフェスのmasking関数を求めるには通常三角法による導出が示される。節2.3で議論された、可視マイクロサーフェスの投影面積が保存されるという性質から、シンプルに同様の結果を導き出すことができる。V型空洞マイクロサーフェスは2つの対称的な法線ωm\omega_mωm\omega_m'のみを持つ。したがって、このマイクロサーフェスの法線分布は以下のようになる。

D(ω)=12δωm(ω)ωmωg+12δωm(ω)ωmωg(44)D(\omega) = \frac{1}{2} \frac{\delta_{\omega_m}(\omega)}{\omega_m \cdot \omega_g} + \frac{1}{2} \frac{\delta_{\omega_m'}(\omega)}{\omega_m' \cdot \omega_g} %\label{eq:44} \tag{44}

そして、以下によりこれが正しく正規化されていることを確認できる。

Ωω,ωgD(ω)dω=Ωω,ωg(12δωm(ω)ωmωg+12δωm(ω)ωmωg)dω=12ωmωgωmωg+12ωmωgωmωg=12+12=1(45)\begin{split} \int_{\Omega} \langle \omega, \omega_g \rangle D(\omega) d\omega &= \int_{\Omega} \langle \omega, \omega_g \rangle \left( \frac{1}{2} \frac{\delta_{\omega_m}(\omega)}{\omega_m \cdot \omega_g} + \frac{1}{2} \frac{\delta_{\omega_m'}(\omega)}{\omega_m' \cdot \omega_g} \right) d\omega \\ &= \frac{1}{2} \frac{\omega_m' \cdot \omega_g}{\omega_m' \cdot \omega_g} + \frac{1}{2} \frac{\omega_m' \cdot \omega_g}{\omega_m' \cdot \omega_g} \\ &= \frac{1}{2} + \frac{1}{2} = 1 \end{split} %\label{eq:45} \tag{45}

masking項を導くため、式(14)で表される可視投影面積の保存則を用いる。

cosθo=ΩG1(ωo,ω)ωo,ωD(ω)dω=12G1(ωo,ωm)ωo,ωmωmωg+12G1(ωo,ωm)ωo,ωmωmωg(46)\begin{split} \cos\theta_o &= \int_{\Omega} G_1(\omega_o, \omega) \langle \omega_o, \omega \rangle D(\omega) d\omega \\ &= \frac{1}{2} G_1(\omega_o, \omega_m) \frac{\langle \omega_o, \omega_m \rangle}{\omega_m \cdot \omega_g} + \frac{1}{2} G_1(\omega_o, \omega_m') \frac{\langle \omega_o, \omega_m' \rangle}{\omega_m' \cdot \omega_g} \end{split} %\label{eq:46} \tag{46}

ここでは、図9に示す通り、2つの構成configurationsを取り得る。一方の場合では、2つの法線が可視であり遮蔽されない(G1(ωo,ωm)=1G_1(\omega_o, \omega_m) = 1でありG1(ωo,ωm)=1G_1(\omega_o, \omega_m') = 1)。他方の場合では、ωm\omega_m'が背面を向いている(G1(ωo,ωm)=0G_1(\omega_o, \omega_m') = 0)。このとき以下が成り立つ。

cosθo=12G1(ωo,ωm)ωo,ωmωmωg(47)\cos\theta_o = \frac{1}{2}G_1(\omega_o, \omega_m) \frac{\langle \omega_o, \omega_m \rangle}{\omega_m \cdot \omega_g} %\label{eq:47} \tag{47}

これを解くと、

G1(ωo,ωm)=2cosθo(ωmωg)ωo,ωm=2(ωmωg)(ωoωg)ωo,ωm(48)\begin{split} G_1(\omega_o, \omega_m) &= 2 \frac{\cos\theta_o (\omega_m \cdot \omega_g)}{\langle \omega_o, \omega_m \rangle} \\ &= 2 \frac{(\omega_m \cdot \omega_g) (\omega_o \cdot \omega_g)}{\langle \omega_o, \omega_m \rangle} \end{split} %\label{eq:48} \tag{48}

これら2つの構成の結果は以下の1つの定式で表すことができる。

G1(ωo,ωm)=min(1,2(ωmωg)(ωoωg)ωo,ωm)(49)G_1(\omega_o, \omega_m) = \min \left( 1, 2 \frac{(\omega_m \cdot \omega_g) (\omega_o \cdot \omega_g)}{\langle \omega_o, \omega_m \rangle} \right) %\label{eq:49} \tag{49}

これは、 Cook and Torrance [1982Cook, R. L. and Torrance, K. E. 1982. A reflectance model for computer graphics. ACM Trans. Graph. 1, 1, 7–24. 10.1145/357290.357293. https://graphics.pixar.com/library/ReflectanceModel/paper.pdf.] によって用いられるV型空洞のmasking関数としてよく知られている。

検証(Validation)

このモデルが式(18)を満たすか、すなわち、可視法線分布が正規化されているかどうかを確かめようと思う。まず、式(16)G1G_1を置き換える。

Dωo(ωm)=min(1,2(ωmωg)(ωoωg)ωo,ωm)ωo,ωmD(ωm)cosθo(50)D_{\omega_o}(\omega_m) = \min \left( 1, 2 \frac{(\omega_m \cdot \omega_g) (\omega_o \cdot \omega_g)}{\langle \omega_o, \omega_m \rangle} \right) \frac{\langle \omega_o, \omega_m \rangle D(\omega_m)}{\cos\theta_o} %\label{eq:50} \tag{50}

この形式は、min(1,)min(1, -)の項があるため、調べ辛い。しかし、V型空洞モデルとSmithのモデルの主な違いは、θoπ2\theta_o \approx \frac{\pi}{2}となるgrazing角で発生する。つまり、grazing角では常に図9における構成(a)であり、2つの法線のうち1つは背面を向いていると言える。この場合、min(1,)min(1, -)の部分は取り除くことができる。

(図9:V型空洞のマイクロサーフェスでのマスキング。2つの法線の内どちらか一方が背面を向き、もう一方が部分的に遮蔽される(a)、または、2つの法線が可視であり、マスキング関数が11となる。)

Dωo(ωm)=2(ωmωg)(ωoωg)ωo,ωmωo,ωmD(ωm)cosθo=2χ+(ωoωm)(ωmωg)D(ωm)dωm(51)\begin{split} D_{\omega_o}(\omega_m) &= 2 \frac{(\omega_m \cdot \omega_g) (\omega_o \cdot \omega_g)}{\langle \omega_o, \omega_m \rangle} \frac{\langle \omega_o, \omega_m \rangle D(\omega_m)}{\cos\theta_o} \\ &= 2 \chi^+(\omega_o \cdot \omega_m) (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m \end{split} %\label{eq:51} \tag{51}

ここで、クランプされた内積ωo,ωm\langle \omega_o, \omega_m \rangleは打ち消されるが、背面の法線が分布から取り除かれていることを保証するため、ヘヴィサイド関数χ+(ωoωm)\chi^+(\omega_o \cdot \omega_m)は残してあることに注意したい。この結果を以下の式を計算することで、式(18)、つまり、可視法線分布が正規化されていることを検証する。

ΩDωo(ωm)dωm=2Ωχ+(ωoωm)(ωmωg)D(ωm)dωm(52)\int_{\Omega} D_{\omega_o}(\omega_m) d\omega_m = 2 \int_{\Omega} \chi^+(\omega_o \cdot \omega_m) (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m %\label{eq:52} \tag{52}

grazing角では幾何的な法線に対して出射方向がほぼ垂直になるため、ヘヴィサイド関数は分布のほぼ中央で積分を切り詰める。また、V型空洞の表面は法線分布が対称であること、つまり、D(ωm)=D(ωm)D(\omega_m) = D(\omega_m')であることを暗に示している。これは、ヘヴィサイド関数が法線分布を等しい2つに切り分けることを意味する。

Ωχ+(ωoωm)(ωmωg)D(ωm)dωm=12Ω(ωmωg)D(ωm)dωm=12(53)\begin{split} \int_{\Omega} \chi^+(\omega_o \cdot \omega_m) (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m &= \frac{1}{2} \int_{\Omega} (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m \\ &= \frac{1}{2} \end{split} %\label{eq:53} \tag{53}

ここで、法線分布は正規化されているのでΩ(ωmωg)D(ωm)dωm=1\int_{\Omega} (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m = 1である。そして、この結果と式(52)により、以下が成り立つ。

ΩDωo(ωm)dωm=2Ωχ+(ωoωm)(ωmωg)D(ωm)dωm=212=1(54)\begin{split} \int_{\Omega} D_{\omega_o}(\omega_m) d\omega_m &= 2 \int_{\Omega} \chi^+(\omega_o \cdot \omega_m) (\omega_m \cdot \omega_g) D(\omega_m) d\omega_m \\ &= 2 \frac{1}{2} = 1 \end{split} %\label{eq:54} \tag{54}

これは、入射角がgrazing角であるときに式(51)の可視法線分布が正規化されていることを示している。さらなる詳細なtechnical導出を経ると、どの入射角でもこの分布が正規化されていることを示すことができる。

このモデルを検証する異なる方法としては、Weak White Furnace Testがある。これを行うには、式(49)G1G_1を用いて式(36)を評価する。実際には、この評価は数値積分によって行われる。この積分は常に11になり、したがって、V型空洞によるモデルは数学的に上手く設計されており、エネルギー保存則を満たしている。

性質(Properties)

V型空洞の可視法線分布が数学的に上手く定義されながらも、物理的にもっともらしいplausibleとは言えず、入射角がgrazingのときのサーフェス・プロファイルは非現実的なモデル化が行われている。

この法線には2つの種類がある。1つは背面を向いており、ヘヴィサイド項により取り除かれる。もう1つは背面を向いておらず、(ωmωg)D(ωm)(\omega_m \cdot \omega_g) D(\omega_m)で重み付けされる放射輝度の寄与を生み出す。ここで、(ωmωg)(\omega_m \cdot \omega_g)は、図3(a)で示されるように、マイクロファセットによる幾何的な表面への投影のヤコビアンである。したがって、マイクロファセットは、出射方向に射影される前に幾何的表面に投影されるかの如く、正確に重み付けされる。結果として、幾何的に平坦なマイクロサーフェスをシミュレートしている。マイクロファセットは光の反射をかき乱すpurturbことができるが、幾何的にはそのようなものは存在しない。ゆえに、このマイクロサーフェスモデルは、図10に示すように、ディスプレースメントマップではなくノーマルマップに近い振る舞いをするため、現実感が無くなってしまう。

V型空洞モデルは、1つのマイクロサーフェスをシミュレートするのではなく、法線のペアごとに1つのマイクロサーフェスをシミュレートしてその結果を平均化することから、この効果は予期されていた。1つのマイクロサーフェスならば、高確率な可視法線は低確率な可視法線より多くの投影面積を占める、すなわち、より高い寄与を生み出すと思われる。しかし、V型空洞では、異なる法線は別々にシミュレートされて法線分布によって重み付けされるため、この現象が発生しない。(背面を向いている法線が破棄されること以外は)重みに視点に対する依存性が存在しない。これが、V型空洞モデルは可視性の効果をほとんどpoorly含まず、ノーマルマップのような何かをシミュレートするに留まっている理由である。

入射角がマイクロサーフェスすれすれgrazing the microsurfaceになればなるほど、マイクロサーフェス・プロファイルはこのノーマルマップの振る舞いをさらに強く示す傾向にある。結果として、BRDFのピークが低くなりすぎてしまうという傾向が現れる。現実のマイクロサーフェスでは、出射方向を向いている法線は、その投影面積が大きくなればなるほど、BRDFに対してより高い寄与を持つ。このため、図10に示す通り、反射方向は出射方向に変化しやすいtend to be shifted。この効果は、マイクロファセットが幾何的に存在しないため、ノーマルマップにおいては見られない。つまり、法線はすべて同じ投影面積を持っている。

(図10:(上)V型空洞の表面はグレージング角でノーマルマップ的振る舞いを見せる。つまり、背面を向いていない法線は、まるで幾何的に存在しないかのように、幾何的表面と同じ可視性を持つ。(下)同じグレージング入射角ωo\omega_oにおいて、V型空洞のマイクロサーフェスによって反射した向きωi\omega_iは物理的な表面によって反射した向きωi\omega_iと比べて平均して小さすぎる。)

図11は、V型空洞とSmithのmasking-shadowing関数による等方的なBeckmann分布によって生成されたBRDFと、一致するGaussian statisticsを持つ手続き的な確率論的マイクロサーフェスモデルの散乱に対する数値的なシミュレーションから計算された結果を示している。Smithのmasking関数では、その分布が、ラフネスの増加に伴い、出射方向に傾いてゆくis shifted towardのが確認できる。非常に高いラフネス値では、BRDFでさえ後方散乱backscatteringが主に起こる。この効果は、計測データ現れているが、出射方向を向いた法線が最も多く見えることから、予期されていたことである。一方で、V型空洞モデルからはこの効果は現れない。

(図11:(左と中央)等方的Beckmann分布に関連するBRDFとグレージング入射角(θo=1.5\theta_o = 1.5)での様々なマスキング関数。(右)ラフネスのパラメータα\alphaによってパラメータ化されたGaussian statisticsを伴うプロシージャルな表面でのモンテカルロ・レイトレーシングで計算されたリファレンス。)

4.3. 非物理ベースmasking関数(Non-Physically Based Masking Functions)

定義(Definition)

マイクロサーフェスモデルから導き出された、もしくは、物理的なマイクロサーフェスを計測したものであれば、そのmasking関数は”物理ベース”と分類していたことを思い出して欲しい。物理ベースなmasking関数は常に式(14)式(18)式(36)式(37)を満たす。逆にreciprocally、“非物理ベース”なmasking関数はこれらの式を満たさない。すなわち、これらを導き出す(または、計測する)ことができるマイクロサーフェスが存在しないことを意味する。

暗黙的なmasking関数(Implicit Masking Function)

式(29)で与えられた鏡面的マイクロファセットベースBRDFの式を簡単化するために、多くのモデルは、masking-shadowing関数と分母の式ωgωoωgωi|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|が互いを打ち消すと仮定して取り除かれる[McAuley et al. 2013McAuley, S., Hill, S., Martinez, A., Villemin, R., Pettineo, M., Lazarov, D., Neubelt, D., Karis, B., Hery, C., Hoffman, N. and Zap Andersson, H. 2013. Physically based shading in theory and practice. ACM SIGGRAPH 2013 courses. 10.1145/2504435.2504457. https://blog.selfshadow.com/publications/s2013-shading-course/.]。つまり、masking-shadowingは暗に以下のように定義されると言える。

G2(ωo,ωi,ωm)=G1(ωo,ωm)G1(ωi,ωm)(55)G_2(\omega_o, \omega_i, \omega_m) = G_1(\omega_o, \omega_m) G_1(\omega_i, \omega_m) %\label{eq:55} \tag{55}

ここで、分割されたmasking関数とshadowing関数は以下のようになる。

G1(ωo,ωm)=χ+(ωoωm)ωo,ωg(56)G_1(\omega_o, \omega_m) = \chi^+(\omega_o \cdot \omega_m) \langle \omega_o, \omega_g \rangle %\label{eq:56} \tag{56}
G1(ωi,ωm)=χ+(ωiωm)ωi,ωg(57)G_1(\omega_i, \omega_m) = \chi^+(\omega_i \cdot \omega_m) \langle \omega_i, \omega_g \rangle %\label{eq:57} \tag{57}

このmasking関数は、ωo=ωg\omega_o = \omega_gのときG1(ωo,ωm)=1G_1(\omega_o, \omega_m) = 1であり、入射角がπ2\frac{\pi}{2}に近づくに連れてG1(ωo,ωm)=0G_1(\omega_o, \omega_m) = 0になるよう減少するため、“もっともらしい”と言える。しかし、このmasking関数は物理ベースではない。もちろん、式(14)による投影面積の保存則を満たさない。これは、このmasking関数から導き出せる物理的なマイクロサーフェスモデルが存在しないことを示している。

Schlick-Smithのmasking関数(The Schlick-Smith Masking Function)

Schlick [1994Schlick, C. 1994. An inexpensive BRDF model for physically-based rendering. Computer Graphics Forum 13, 3, 233–246. https://doi.org/10.1111/1467-8659.1330233. https://wiki.jmonkeyengine.org/docs/3.3/tutorials/_attachments/Schlick94.pdf.] は、しばしば”Schlick-Smith”のmasking関数として参照される、Smithのmasking関数の近似を提案した。このmasking関数には3つの問題がある。

1つ目は、その論文で使われているラフネスのパラメータmm矛盾があるinconsistことである。その論文の式(18)はマイクロサーフェスの二乗平均平方根root mean square(RMS)の傾斜を指している。つまりmmは、物理学の文献や、特にオリジナルの Smith [1967Smith, B. 1967. Geometrical shadowing of a random rough surface. IEEE Transactions on Antennas and Propagation 15, 5, 668–671. 10.1109/TAP.1967.1138991.] の論文で時折使われているラフネスの記述子descriptorm=σm = \sigmaである。これは同じ式中の変数hhの定義と一致している。しかしながら、その論文の式(20)の中だと、mmはBeckmann分布のラフネスパラメータm=α=2σm = \alpha = \sqrt{2} \sigmaである。これは、RMSの傾斜を2\sqrt{2}倍したものである。結果として、masking関数で使われているラフネスと法線分布で使われているラフネスに不整合が生じている。

この矛盾は容易に解決できるが、より重大なcritical問題は、彼によるSmithのmasking関数の再定式化(その論文の式(18))に誤りがあることである。彼は、“いくつかの同値equivalencesにより、オリジナルの式GGは以下のように…”と述べているstates。その導出は提示されていないが、これは、Schlickが He et al. [1991He, X. D., Torrance, K. E., Sillion, F. X. and Greenberg, D. P. 1991. A comprehensive physical model for light reflection. SIGGRAPH Comput. Graph. 25, 4, 175–186. 10.1145/127719.122738. https://www.graphics.cornell.edu/pubs/1991/HTSG91.pdf.] の式(その論文の式(24)および(25))を再編成したrearrangedように思われる。これには、SmithのΛ\Lambda関数から指数の項が欠落している、というtypoが含まれている。

(図12:SmithおよびSchlick-Smithのマスキング関数と、これらに対応する、可変の角θo\theta_oと固定のα=1\alpha = 1のときの有理数による近似。)

さらに、[#^sec-4-1|節4.1]]の最後の段落で、幾何光学的なBRDFモデルに使うためのSmithのmasking関数はマイクロサーフェスの高さに対して平均化したものであると説明した。しかし、Schlickは、 He et al. [1991He, X. D., Torrance, K. E., Sillion, F. X. and Greenberg, D. P. 1991. A comprehensive physical model for light reflection. SIGGRAPH Comput. Graph. 25, 4, 175–186. 10.1145/127719.122738. https://www.graphics.cornell.edu/pubs/1991/HTSG91.pdf.] の高さと法線を平均化するSmithのmasking関数を引き続き使ってしまった。これは、波動光学モデルの文脈においてなら適切であった。

2つの誤りerrorの結果として、図12のプロットが示す通り、Schlickのオリジナルの定式もフィッティングした近似式もどちらもSmithのmasking関数に正しくマッチしない。これは”Schlick-Smith”のmasking関数が、式(14)から投影面積の保存則を保証できないため、物理ベースでないことを意味する。

Kelemenのmasking関数(The Kelemen Masking Function)

Kelemen and Szirmay-Kalos [2001Kelemen, C. and Szirmay-Kalos, L. 2001. A microfacet based coupled specular-matte BRDF model with importance sampling. Eurographics 2001 - short presentations. 10.2312/egs.20011003. http://www.hungrycat.hu/microfacet.pdf.] は、以下の近似式を用いて、V型空洞モデルのmasking-shadowing関数と、式(29)で与えられる鏡面的マイクロファセットベースBRDFの分母を置き換える安価な方法を提案した。

G2(ωo,ωi,ωh)ωgωoωgωi=1ωoωhωiωh(58)\frac{G_2(\omega_o, \omega_i, \omega_h)}{|\omega_g \cdot \omega_o| |\omega_g \cdot \omega_i|} = \frac{1}{|\omega_o \cdot \omega_h| |\omega_i \cdot \omega_h|} %\label{eq:58} \tag{58}

これは、masking関数とshadowing関数を以下の式で近似することと等価である。

G1(ωo,ωh)=ωgωoωoωh(59)G_1(\omega_o, \omega_h) = \frac{|\omega_g \cdot \omega_o|}{|\omega_o \cdot \omega_h|} %\label{eq:59} \tag{59}
G1(ωi,ωh)=ωgωiωiωh(60)G_1(\omega_i, \omega_h) = \frac{|\omega_g \cdot \omega_i|}{|\omega_i \cdot \omega_h|} %\label{eq:60} \tag{60}

このmasking関数はV型空洞のmasking関数に近い。ωgωo|\omega_g \cdot \omega_o|は幾何的表面の投影面積であり、ωoωh|\omega_o \cdot \omega_h|はマイクロファセットの投影面積である。つまりこの式により、マイクロファセットの投影面積が幾何的表面の投影面積に置き換えられる。これは、ノーマルマップのように平坦なマイクロファセットのよるマイクロサーフェスをシミュレートする傾向がある。

しかし、V型空洞のmasking関数と異なり、Kelemenのmasking関数は式(14)から投影面積が保存されること保証しない。これはV型空洞のmasking関数に対する良い近似であり続けるが、Kelemenの式から導出される物理的モデルは存在しない。それはすなわち、物理ベースではない。

4.4. まとめ(Summary)

この節では、以下を示した。

  • Smithのmasking関数とV型空洞のmasking関数はともに物理ベースであるが、異なるマイクロサーフェス・プロファイルを仮定している。
  • 両方とも、式(14)から投影面積が保存することを保証する。
  • 両方とも、式(18)の可視法線分布の正規化係数である。
  • 両方とも、式(36)式(37)で与えられるWeak White Furnace Testを満たす。
  • 対して、暗黙的masking関数、Schlick-Smithのmasking関数、および、Kelemenのmasking関数は式(14)式(18)式(36)式(37)を満たさない。したがって、これらは物理ベースではない。つまり、これらの式から導き出せるマイクロサーフェス・プロファイルが存在しない。
Smithのmasking関数(The Smith Masking Function)

代表的な説typical beliefのひとつに、“Smithのmasking関数は法線分布に依存しているため、良い近似である。“というものがある。我々は、この回答については正しいが、理由については間違っていることを、以下のアイデアを開発することで示した。

  • Smithのモデルを選択することは、可視法線の方向がmasking確率に依存しないマイクロサーフェスを仮定することを選択したと暗に示している。
  • この仮定の下、masking関数は完全に決定される。その完全形式exact formは、Smithのmasking関数の一般形式として導き出すことができる。

ここでのポイントは、Smithのmasking関数を選択する理由が法線分布によってパラメータ化された物理的にもっともらしい近似だからではない、ということである。これを選ぶ本当の理由は、Smithの式が選ばれたマイクロサーフェス・プロファイル(つまり、法線・masking独立)の仮定の下では厳密なexactmasking関数であること、である。物理的にもっともらしく、法線分布によってパラメータ化されているということは、それを選ぶ直接的な理由ではないが、正しい物理ベースmasking関数を使うことで予期される副次的効果ではある。

V型空洞のmasking関数(The V-Cavity Masking Function)

もうひとつの誤解として、“V型空洞のmasking関数は、法線分布に基づかないので、間違いである。“というものがある。この節では、我々は、この推論が誤りであるが、V型空洞モデルによって生み出された近似には重要な制約があることを示した。以下はその理由である。

  • 法線ごとのV型空洞のmasking関数は法線分布に依存しない。
  • しかし、V型空洞のmasking関数の平均は法線分布に依存している。これはSmithのモデルとは逆に、masking関数と法線が独立していると仮定していないためである。表面のラフネスが増加すれば、BRDFの平均遮蔽率average maskingは増加する。
  • V型空洞のmasking関数はいかなる対称的な法線分布にも用いることができ、正しく正規化されることが保証されている。
  • しかし、V型空洞モデルによって仮定されるサーフェス・プロファイルは、入射角がgrazingのときに平坦なマイクロファセットを持つような、ノーマルマップのそれに近い応答を有している。
  • grazing角や高いラフネスでは、現実の材質から予測されるものと比較して、BRDFのlobeが小さくなりすぎてしまう、というのが結論である。

V型空洞とSmithのどちらを選ぶかという問いには、両方ともマイクロサーフェス・プロファイルに基づいており、数学的に上手く定義されていることから、決定的な答えは存在しない。V型空洞は計算コストがより低く、一般的である --- これは数学的にいかなる法線分布でも機能する --- が、現実感の点で劣るところがある。対して、Smithベースのモデルはより正確であるが、特有の導出と時折高価な計算sometimes-expensive evaluationsが必要である。したがって、この選択は現実感とパフォーマンスのトレードオフの問題である。

5. masking関数の伸長不変性(Stretch Invariance of the Masking Function)

5.1. masking確率の不変性(Masking Probability Invariance)

図(13)は、一次元の形状configurationを引き伸ばしたとき、与えられた出射方向に対するマイクロサーフェスのmaskingに与える影響を示している。形状を引き伸ばすことは、その画像を引き伸ばすことに等しい。すなわち、それはある次元に定数をかけることに等しい。この操作operationは形状のトポロジーを変化させない。つまり、伸長したあとでも、遮蔽されるレイは遮蔽されるままであり、遮蔽されないレイは遮蔽されないままである。これは重要なkey性質である。すなわち、形状に含まれるすべての傾斜が同時にスケールするとき、masking確率は形状の伸長に対して不変である。これにはマイクロサーフェスの傾斜も含まれ、その傾斜は出射方向に関係づけられている。これらはすべて伸長係数の逆数でスケールする。したがって、傾斜分布the distribution of slopesの幅は伸長係数の逆数で伸長する。

(図13:22の係数で1Dの形状を伸張させてもマスキング確率GGは変化しないが、形状のすべての傾斜は12\frac{1}{2}の係数でスケールする。これには、出射方向に関連する傾斜と同様に、マイクロサーフェスの傾斜を含む。)

5.2. 傾斜分布(The Distribution of Slopes)

マイクロサーフェスが高さフィールドhightfieldであるならば、マイクロサーフェスの高さの分布はしばしばP1(h)P^1(h)で示される。このときのマイクロサーフェスの傾斜は高さの勾配(xm~,ym~)=h(x_{\tilde{m}}, y_{\tilde{m}}) = \nabla hで示される。つまり、マイクロサーフェスの高さが空間的にどれだけ変化しているかを計測することを表している。マイクロサーフェスの傾斜分布はP22(xm~,ym~)P^{22}(x_{\tilde{m}}, y_{\tilde{m}})で示される。ここで、m~=(xm~,ym~)\tilde{m} = (x_{\tilde{m}}, y_{\tilde{m}})は法線ωm=(xm,ym,zm)\omega_m = (x_m, y_m, z_m)に関連する傾斜であり、以下で表される。

m~=(xm~,ym~)=(xmzm,ymzm)=tanθm(cosϕm,sinϕm)(61)\tilde{m} = (x_{\tilde{m}}, y_{\tilde{m}}) = (-\frac{x_m}{z_m}, -\frac{y_m}{z_m}) = -\tan\theta_m(\cos\phi_m, \sin\phi_m) %\label{eq:61} \tag{61}

逆に考えると、ωm\omega_mは以下で表される。

ωm=(xm~,ym~,1)xm~2+ym~2+1(62)\omega_m = \frac{(-x_{\tilde{m}}, -y_{\tilde{m}}, 1)}{\sqrt{x_{\tilde{m}}^2 + y_{\tilde{m}}^2 + 1}} %\label{eq:62} \tag{62}

傾斜分布は正規化されている必要がある。

P22(xm~,ym~)dxm~dym~=1(63)\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) dx_{\tilde{m}} dy_{\tilde{m}} = 1 %\label{eq:63} \tag{63}

傾斜分布から法線分布を作ることができる。

D(ωm)=P22(xm~,ym~)cos4θm(64)D(\omega_m) = \frac{P^{22}(x_{\tilde{m}}, y_{\tilde{m}})}{\cos^{4} \theta_m} %\label{eq:64} \tag{64}

ラフネスパラメータが明示されなければならないならば、等方的な分布にはD(ωm,α)D(\omega_m, \alpha)P22(xm~,ym~,α)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha)の表記を、異方的な分布にはD(ωm,αx,αy)D(\omega_m, \alpha_x, \alpha_y)P22(xm~,ym~,αx,αy)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha_x, \alpha_y)の表記を使う。

5.3. 等方的な形状不変の傾斜分布(Isotropic Shape-Invariant Distributions of Slopes)

形状不変(Shape-Invariance)

いくつかの等方的でパラメトリックな傾斜分布isotropic parametric distributions of slopesP22P^{22}はラフネスパラメータα\alphaに依存する。このとき、α\alphaを変化させることはshapeを変化させずに分布を伸長することと等価である。これは、その傾斜分布が、角度θm\theta_mの法線における傾斜の大きさamplitudetanθm=xm~2+ym~2\tan\theta_m = \sqrt{x_{\tilde{m}}^2 + y_{\tilde{m}}^2}とラフネスパラメータα\alphaとの比tanθmα\frac{\tan\theta_m}{\alpha}にのみ依存する場合であり、以下で表される。

P22(xm~,ym~,α)=1α2f(xm~2+ym~2α)=1α2f(tanθmα)(65)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha) = \frac{1}{\alpha_2} f \left( \frac{\sqrt{x_{\tilde{m}}^2 + y_{\tilde{m}}^2}}{\alpha} \right) = \frac{1}{\alpha^2} f \left( \frac{\tan\theta_m}{\alpha} \right) %\label{eq:65} \tag{65}

ここで、ffは分布の形を定義する一次元の関数である。これらの傾斜分布は 形状不変shape-invariant であるという。その理由は、この性質が示される分布が常に同じ形ffを持ち、ラフネスパラメータによってのみ引き伸ばされ、スケールされることによる。つまり、以下で表される。

P22(xm~,ym~,α)=1λ2P22(xm~λ,ym~λ,αλ), for any λ>0(66)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha) = \frac{1}{\lambda^2} P^{22}(\frac{x_{\tilde{m}}}{\lambda}, \frac{y_{\tilde{m}}}{\lambda}, \frac{\alpha}{\lambda}) \text{, for any } \lambda > 0 %\label{eq:66} \tag{66}

図(13)で示した通り、等方的な形状不変の傾斜分布において、その形状configurationを伸長することは、ラフネスパラメータα\alphaと出射ベクトルの傾斜を同じファクタでスケールさせることと等価である。これはmasking関数が変数a=1αtanθoa = \frac{1}{\alpha\tan\theta_o}にのみ依存することを暗に示している。ここで、1tanθo\frac{1}{\tan\theta_o}は出射方向の傾斜を表す。Beckmann分布とGGX分布は、関数Λ\Lambdaaaにのみ依存するため、形状不変である。Λ\Lambda式(43)で与えられるSmithのmasking関数に現れる。

Beckmann分布(Beckmann Distribution)
P22(xm~,ym~)=1πα2exp(xm~2+ym~2α2)(67)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) = \frac{1}{\pi\alpha^2} \exp\left( -\frac{x_{\tilde{m}}^2 + y_{\tilde{m}}^2}{\alpha^2} \right) %\label{eq:67} \tag{67}
D(ωm)=χ+(ωmωg)πα2cos4θmexp(tan2θmα2)(68)D(\omega_m) = \frac{\chi^+(\omega_m \cdot \omega_g)}{\pi \alpha^2 \cos^4 \theta_m} \exp\left( -\frac{\tan^2 \theta_m}{\alpha^2} \right) %\label{eq:68} \tag{68}
Λ(ωo)=erf(a)12+12aπexp(a2)(69)\Lambda(\omega_o) = \frac{\text{erf}(a) - 1}{2} + \frac{1}{2a \sqrt{\pi}} \exp(-a^2) %\label{eq:69} \tag{69}

ここで、a=1αtanθoa = \frac{1}{\alpha\tan\theta_o}である。 Walter et al. [2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.] は、G1(ωo)=11+Λ(ωo)G_1(\omega_o) = \frac{1}{1 + \Lambda(\omega_o)}の正確な近似式を提案している。これにより、Λ(ωo)\Lambda(\omega_o)を以下の式で近似することができる。

Λ(ωo){11.259a+0.396a23.535a+2.181a2if a<1.60otherwise\Lambda(\omega_o) \approx \begin{cases} \frac{1 - 1.259a + 0.396a^2}{3.535a + 2.181a^2} & \text{if } a < 1.6 \\ 0 & \text{otherwise} \end{cases}
GGX分布(GGX Distribution)
P22(xm~,ym~)=1πα2(1+xm~2+ym~2α2)2(70)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) = \frac{1}{\pi\alpha^2 \left(1 + \frac{x_{\tilde{m}}^2 + y_{\tilde{m}}^2}{\alpha^2} \right)^2} %\label{eq:70} \tag{70}
D(ωm)=χ+(ωmωg)πα2cos4θm(1+tan2θmα2)2(71)D(\omega_m) = \frac{\chi^+(\omega_m \cdot \omega_g)}{\pi \alpha^2 \cos^4 \theta_m \left( 1 + \frac{\tan^2 \theta_m}{\alpha^2} \right)^2} %\label{eq:71} \tag{71}
Λ(ωo)=1+1+1a22(72)\Lambda(\omega_o) = \frac{-1 + \sqrt{1 + \frac{1}{a^2}}}{2} %\label{eq:72} \tag{72}

ここで、a=1αtanθoa = \frac{1}{\alpha \tan \theta_o}である。

形状不変ではない分布(Shape-variant distributions)

すべての分布が形状不変であるとは限らないということは注意すべきである。例えば、Phong分布は、式(65)の形式で説明できないので、形状不変ではない。言い換えれば、ラフネスが変化すると、Phong分布の形は変化する。

5.4. 異方的な形状不変の傾斜分布(Anisotropic Shape-Invariant Distributions of Slopes)

形状不変性(Shape Invariance)

同じ形状不変な分布は、方位azimuth依存の係数によって形が伸長すると、異方性を持つことがある。傾斜のそれぞれが各方向に対して重み付けされることで、式(65)は以下の形に置き換えられる。

P22(xm~,ym~,αx,αy)=1αxαyf(xm~2αx2+ym~2αy2)=1αxαyf(tanθmcos2ϕmαx2+sin2ϕmαy2)(73)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha_x, \alpha_y) = \frac{1}{\alpha_x \alpha_y} f \left( \sqrt{\frac{x_{\tilde{m}}^2}{\alpha_x^2} + \frac{y_{\tilde{m}}^2}{\alpha_y^2}} \right) = \frac{1}{\alpha_x \alpha_y} f \left( \tan \theta_m \sqrt{\frac{\cos^2 \phi_m}{\alpha_x^2} + \frac{\sin^2 \phi_m}{\alpha_y^2}} \right) %\label{eq:73} \tag{73}

ここで、(tanθmcosϕm,tanθmsinϕm)=(xm~,ym~)(-\tan\theta_m \cos\phi_m, -\tan\theta_m \sin\phi_m) = (x_{\tilde{m}}, y_{\tilde{m}})はその傾斜を、αx\alpha_xαy\alpha_yはX軸とY軸それぞれに対する分布の伸長を示す係数を表す。このとき、形状不変性を示す性質は以下のように記述される。

P22(xm~,ym~,αx,αy)=1λxλyP22(xm~λx,ym~λy,αxλx,αyλy), for any λx,λy>0(74)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}, \alpha_x, \alpha_y) = \frac{1}{\lambda_x \lambda_y} P^{22}(\frac{x_{\tilde{m}}}{\lambda_x}, \frac{y_{\tilde{m}}}{\lambda_y}, \frac{\alpha_x}{\lambda_x}, \frac{\alpha_y}{\lambda_y}) \text{, for any } \lambda_x, \lambda_y > 0 %\label{eq:74} \tag{74}
masking関数の導出(Derivation of the Masking Function)

図(14)は、どのようにしたら等方的な形状不変の分布が表面の伸長によって異方的な分布に変換できるかを示している。逆に、異方的な分布を持ついかなる形状も等方的な分布をもつ形状に変換できる。

我々はこの性質を異方的な分布のmasking関数を導き出すために用いる。まず、αx\alpha_xαy\alpha_yと出射方向ωo=(xo,yo,zo)\omega_o = (x_o, y_o, z_o)からなる、形状不変な異方的分布を持つ形状を考える。X軸方向にαxαy\frac{\alpha_x}{\alpha_y}で伸長すると、表面のラフネスは以下のようになる。

αx=αxαyαx=αy(75)\alpha_{x}' = \alpha_x \frac{\alpha_y}{\alpha_x} = \alpha_y %\label{eq:75} \tag{75}
αy=αy(76)\alpha_{y}' = \alpha_y %\label{eq:76} \tag{76}

この伸長した表面はラフネスαy\alpha_yで等方性を持ち、伸長後の出射ベクトルとその傾斜は以下のようになる。

ωo=(αxαyxo,yo,zo)=(αxαycosϕosinθo,sinθo,cosθo)(77)\omega_{o}' = \left( \frac{\alpha_x}{\alpha_y} x_o, y_o, z_o \right) = \left( \frac{\alpha_x}{\alpha_y} \cos\phi_o \sin\theta_o, \sin\theta_o, \cos\theta_o \right) %\label{eq:77} \tag{77}
1tanθo=zoαx2αy2xo2+yo2=1αx2αy2cos2ϕo+sin2ϕotanθo(78)\frac{1}{\tan\theta_{o}'} = \frac{z_o}{\sqrt{\frac{\alpha_x^2}{\alpha_y^2} x_o^2 + y_o^2}} = \frac{1}{\sqrt{\frac{\alpha_x^2}{\alpha_y^2} \cos^2 \phi_o + \sin^2 \phi_o}\tan\theta_o} %\label{eq:78} \tag{78}

等方的な分布のmasking関数はa=1αtanθoa = \frac{1}{\alpha\tan\theta_o}のみに依存するので、

α=αy\alpha = \alpha_yとしたとき、この伸長した表面でのaaを求めると、以下のようになる。

a=1αytanθo=1αycos2ϕoαx2αy2+sin2ϕotanθo=1cos2ϕoαx2+sin2ϕoαy2tanθo=1αtanθo(79)\begin{split} a' = \frac{1}{\alpha_y \tan\theta_{o}'} &= \frac{1}{\alpha_y \sqrt{\cos^2 \phi_o \frac{\alpha_x^2}{\alpha_y^2} + \sin^2 \phi_o} \tan\theta_o} \\ &= \frac{1}{\sqrt{\cos^2 \phi_o \alpha_x^2 + \sin^2 \phi_o \alpha_y^2} \tan\theta_o} \\ &= \frac{1}{\alpha\tan\theta_o} \end{split} %\label{eq:79} \tag{79}

ここで、

α=cos2ϕoαx2+sin2ϕoαy2(80)\alpha = \sqrt{\cos^2 \phi_o \alpha_x^2 + \sin^2 \phi_o \alpha_y^2} %\label{eq:80} \tag{80}

出射方向に投影されるラフネスを表す。これにより、ある異方的な形状不変の傾斜分布に関連するmasking関数は本質的にその等方的なバージョンと同じであることが示される。唯一異なる点として、出射方向に投影された異方的な表面のラフネスによってパラメータ化されていることが挙げられる。我々は異方的なGGX分布とBeckmann分布のmasking関数を導くためにこの性質を利用する。

異方的なBeckmann分布(Anisotropic Beckmann Distribution)
P22(xm~,ym~)=1παxαyexp(xm~2αx2+ym~2αy2)(81)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) = \frac{1}{\pi \alpha_x \alpha_y} \exp\left( -\frac{x_{\tilde{m}}^2}{\alpha^2_x} + \frac{y_{\tilde{m}}^2}{\alpha^2_y} \right) %\label{eq:81} \tag{81}
D(ωm)=χ+(ωmωg)παxαycos4θmexp(tan2θm(cos2ϕmαx2+sin2ϕmαy2))(82)D(\omega_m) = \frac{\chi^+(\omega_m \cdot \omega_g)}{\pi \alpha_x \alpha_y \cos^4 \theta_m} \exp\left( -\tan^2 \theta_m \left( \frac{\cos^2 \phi_m}{\alpha^2_x} + \frac{\sin^2 \phi_m}{\alpha^2_y} \right) \right) %\label{eq:82} \tag{82}
Λ(ωo)=erf(a)12+12aπexp(a2)(83)\Lambda(\omega_o) = \frac{\text{erf}(a) - 1}{2} + \frac{1}{2a \sqrt{\pi}} \exp(-a^2) %\label{eq:83} \tag{83}

ここで、a=1αotanθoa = \frac{1}{\alpha_o \tan\theta_o}であり、αo\alpha_o式(80)で定義される。等方的なBeckmann分布のΛ\Lambdaの近似式は異方的な場合でも同じように使うことができる。

GGX分布(GGX Distribution)
P22(xm~,ym~)=1παxαy(1+xm~2αx2+ym~2αy2)2(84)P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) = \frac{1}{\pi\alpha_x \alpha_y \left(1 + \frac{x_{\tilde{m}}^2}{\alpha^2_x} + \frac{y_{\tilde{m}}^2}{\alpha^2_y} \right)^2} %\label{eq:84} \tag{84}
D(ωm)=χ+(ωmωg)παxαycos4θm(1+tan2θm(cos2ϕmαx2+sin2ϕmαy2))2(85)D(\omega_m) = \frac{\chi^+(\omega_m \cdot \omega_g)}{\pi \alpha_x \alpha_y \cos^4 \theta_m \left( 1 + \tan^2 \theta_m \left( \frac{\cos^2 \phi_m}{\alpha^2_x} + \frac{\sin^2 \phi_m}{\alpha^2_y} \right) \right)^2} %\label{eq:85} \tag{85}
Λ(ωo)=1+1+1a22(86)\Lambda(\omega_o) = \frac{-1 + \sqrt{1 + \frac{1}{a^2}}}{2} %\label{eq:86} \tag{86}

ここで、a=1αotanθoa = \frac{1}{\alpha_o \tan\theta_o}であり、αo\alpha_o式(80)で定義される。

(図14:22の係数で2Dの形状を伸張したもの。出射ベクトルの座標も同様に伸長される。)

5.5. さらなる一般化(More Generalization)

任意の形状不変な分布(Arbitrary Shape-Invariant Distributions)

形状不変な分布の大事な性質として、masking関数に必要なすべての情報が、いかなるラフネスでも異方的であっても、同じ一次元の関数Λ\Lambdaに含まれていること、が挙げられる。したがって、Λ\Lambdaが利用可能であるなら、さまざまなvaryingラフネスや異方性によるパラメトリックな分布の部類class全体に用いることができる。任意の一次元の関数ffを選択することで、以下の式から、形状不変の異方的な法線分布を簡単に設計できる。

D(ωm)=cαxαycos4θmf(tan2θm(cos2ϕmαx2+sin2ϕmαy2))(87)D(\omega_m) = \frac{c}{\alpha_x \alpha_y \cos^4 \theta_m} f \left( \tan^2 \theta_m \left( \frac{\cos^2 \phi_m}{\alpha^2_x} + \frac{\sin^2 \phi_m}{\alpha^2_y} \right) \right) %\label{eq:87} \tag{87}

ここで、ccは分布の正規化係数を表す定数となる。Λ(1αotanθo)\Lambda(\frac{1}{\alpha_o \tan\theta_o})は数値的に事前計算して表にまとめたり、WalterらがBeckmann分布で行ったように、有理多項式にフィッティングしたりすることができる。

軸に平行でない伸長(Non Axis-Aligned Stretching)

伸長処理は軸に平行axis-alignedである必要はない。傾斜空間における一般的な伸長は二次曲面quadricで再定義することができる。対称な正定値positive-definiteである行列QQを以下とする。

Q1=[αx2rxyαxαyrxyαxαyαy2](88)Q^{-1} = \begin{bmatrix} \alpha^2_x & r_{xy} \alpha_x \alpha_y \\ r_{xy} \alpha_x \alpha_y & \alpha^2_y \end{bmatrix} %\label{eq:88} \tag{88}

そして、rxyr_{xy}はX軸とY軸における伸長の相関係数である。二次曲面QQは、2Dユークリッド空間における、傾斜の内積scalar productとノルムを定義する。

m~=m~,m~=m~TQm~(89)\begin{split} \|\tilde{m}\| & = \sqrt{\langle \tilde{m}, \tilde{m} \rangle} \\ & = \sqrt{\tilde{m}^T Q \tilde{m}} \end{split} %\label{eq:89} \tag{89}

再掲すると、式(61)で定義される2Dベクトルm~=tanθm(cosϕm,sinϕm)\tilde{m} = -\tan\theta_m(\cos\phi_m, \sin\phi_m)は法線ωm\omega_mに関連する傾斜である。傾斜のノルムm~\|\tilde{m}\|は傾斜空間で起こる伸長を表しており、分布の形を示すff引数argumentである。より単純に、相関のない(rxy=0r_{xy} = 0)場合を考えると、ノルムの式と出射方向に投影されるラフネスは以下のようになる。

m~2=tanθm(cosϕm,sinϕm)TQtanθm(sinϕm,cosϕm)=tan2θm(cos2ϕmαx2+sin2ϕmαy2)(90)\begin{split} \|\tilde{m}\|^2 & = \tan\theta_m(\cos\phi_m, \sin\phi_m)^T Q \tan\theta_m(\sin\phi_m, \cos\phi_m) \\ & = \tan^2 \theta_m \left( \frac{\cos^2 \phi_m}{\alpha^2_x} + \frac{\sin^2 \phi_m}{\alpha^2_y} \right) \end{split} %\label{eq:90} \tag{90}
αo2=cos2ϕoαx2+sin2ϕoαy2(91)\alpha^2_o = \cos^2 \phi_o \alpha^2_x + \sin^2 \phi_o \alpha^2_y %\label{eq:91} \tag{91}

一般的な場合(rxy0r_{xy} \neq 0)は、代わりに以下のようになる。

m~2=tanθm(cosϕm,sinϕm)TQtanθm(sinϕm,cosϕm)=tan2θm(cos2ϕmαy2+sin2ϕmαx22cosϕmsinϕmrxyαxαyαx2αy2rxy2αx2αy2)(92)\begin{split} \|\tilde{m}\|^2 & = \tan\theta_m(\cos\phi_m, \sin\phi_m)^T Q \tan\theta_m(\sin\phi_m, \cos\phi_m) \\ & = \tan^2 \theta_m \left( \frac{\cos^2 \phi_m \alpha^2_y + \sin^2 \phi_m \alpha^2_x - 2\cos\phi_m \sin\phi_m r_{xy} \alpha_x \alpha_y}{\alpha^2_x \alpha^2_y - r^2_{xy} \alpha^2_x \alpha^2_y} \right) \end{split} %\label{eq:92} \tag{92}
αo2=cos2ϕoαx2+sin2ϕoαy2+2cosϕosinϕorxyαxαy(93)\alpha^2_o = \cos^2 \phi_o \alpha^2_x + \sin^2 \phi_o \alpha^2_y + 2 \cos\phi_o \sin\phi_o r_{xy} \alpha_x \alpha_y %\label{eq:93} \tag{93}

例えば、LEADRマッピングでは、相関のあるBeckmann分布を用いる[Dupuy et al. 2013Dupuy, J., Heitz, E., Iehl, J.-C., Poulin, P., Neyret, F. and Ostromoukhov, V. 2013. Linear efficient antialiased displacement and reflectance mapping. ACM Trans. Graph. 32, 6. 10.1145/2508363.2508422. https://inria.hal.science/hal-00858220v1/file/LEADRmapping.pdf.]。ここでは、相関係数rxy[1,1]r_{xy} \in [-1, 1]を0以外の値に設定すると、DDの正規化定数に影響を与えることができる。

垂直なせん断と中央揃えでない分布(Vertical Shearing and Non-Centered Distributions)

図(15)は、垂直なせん断vertical shearingが行われてもmasking関数が不変であることを示している。形状に垂直なせん断を適用することは、定数値で形状のすべての傾斜をオフセットすることと等価である。前回と同様に、これはマイクロサーフェスの傾斜を含み、その傾斜は出射方向に関連している。我々は、マイクロサーフェスの平均傾斜m~ˉ=(xˉm~,yˉm~)\bar{\tilde{m}} = (\bar{x}_{\tilde{m}}, \bar{y}_{\tilde{m}})を示すための用語としてメゾサーフェスmesosurface を用いる。

(xˉm~,yˉm~)=++(xm~,ym~)P22(xm~,ym~)dxm~,dym~(94)(\bar{x}_{\tilde{m}}, \bar{y}_{\tilde{m}}) = \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} (x_{\tilde{m}}, y_{\tilde{m}}) P^{22}(x_{\tilde{m}}, y_{\tilde{m}}) dx_{\tilde{m}}, dy_{\tilde{m}} %\label{eq:94} \tag{94}
m~2=(tanθm(cosϕm,sinϕm)+(xˉm~,yˉm~))TQ(tanθm(cosϕm,sinϕm)+(xˉm~,yˉm~))=(tanθmcosϕm+xˉm~)2αy2αx2αy2rxy2αx2αy2+(tanθmsinϕm+yˉm~)2αx2αx2αy2rxy2αx2αy2 2(tanθmcosϕm+xˉm~)(tanθmsinϕm+yˉm~)rxyαxαyαx2αy2rxy2αx2αy2(95)\begin{split} \|\tilde{m}\|^2 & = (\tan\theta_m(\cos\phi_m, \sin\phi_m) + (\bar{x}_{\tilde{m}}, \bar{y}_{\tilde{m}}))^T Q (\tan\theta_m(\cos\phi_m, \sin\phi_m) + (\bar{x}_{\tilde{m}}, \bar{y}_{\tilde{m}})) \\ & = \frac{(\tan\theta_m \cos\phi_m + \bar{x}_{\tilde{m}})^2 \alpha^2_y}{\alpha^2_x \alpha^2_y - r^2_{xy} \alpha^2_x \alpha^2_y} + \frac{(\tan\theta_m \sin\phi_m + \bar{y}_{\tilde{m}})^2 \alpha^2_x}{\alpha^2_x \alpha^2_y - r^2_{xy} \alpha^2_x \alpha^2_y} \\ & \text{ } - 2\frac{(\tan\theta_m \cos\phi_m + \bar{x}_{\tilde{m}})(\tan\theta_m \sin\phi_m + \bar{y}_{\tilde{m}}) r_{xy} \alpha_x \alpha_y}{\alpha^2_x \alpha^2_y - r^2_{xy} \alpha^2_x \alpha^2_y} \end{split} %\label{eq:95} \tag{95}
a=1tanθo(cosϕoxˉm~+sinϕoyˉm~)αo(96)a = \frac{\frac{1}{\tan\theta_o} - (\cos\phi_o \bar{x}_{\tilde{m}} + \sin\phi_o \bar{y}_{\tilde{m}})}{\alpha_o} %\label{eq:96} \tag{96}
αo2=cos2ϕoαx2+sin2ϕoαy2+2cosϕosinϕorxyαxαy(97)\alpha^2_o = \cos^2 \phi_o \alpha^2_x + \sin^2 \phi_o \alpha^2_y + 2 \cos\phi_o \sin\phi_o r_{xy} \alpha_x \alpha_y %\label{eq:97} \tag{97}

垂直なせん断は投影されたラフネスαo\alpha_oや分布の正規化係数に影響を与えないことに注意したい。これは、伸長が分布の形を変化させる一方で、せん断はその形を変化させずに分布をオフセットするので、理にかなっている。ラフネスと正規化係数はせん断において不変であるため、--- つまり、すべての傾斜を変えるalterということは、その法線ベクトルでも --- これらが法線の回転に対しても不変であるかもしれない、と考えたくなってしまう。が、法線ベクトルからファセットの傾斜へのマッピングはベクトルの回転を傾斜値の平行移動translationに変換しないので、それは間違いである。

一般的にtypically、傾斜分布は00を中心としている。これは、メゾサーフェスが幾何的表面と繋がっているis aligned withことを意味する。しかし、この前提assumptionは、マクロジオメトリmacrogeometryが異なる高周波表現により増幅されているとき、誤りとなる。バンプマップ、ノーマルマップ、ディスプレースメントマップの目的はまさにそれで、マクロノーマルmacronormal摂動することperturbatingメゾノーマルmesonormalを作り出すことにある。例えば、 Olano and Baker [2010Olano, M. and Baker, D. 2010. LEAN mapping. Proceedings of the 2010 ACM SIGGRAPH symposium on interactive 3D graphics and games 181–188. 10.1145/1730804.1730834. https://userpages.cs.umbc.edu/olano/papers/lean/.] のLEANマッピングでは、マルチスケールの中央揃えでない傾斜のガウス分布multi-scale non-centered Gaussian distribution of slopesを用いている。この場合、傾斜分布は00を中心とすることはほぼない。レンダリングが物理ベースであるなら、すべてが依然として上手く定義されていることを保証するため、中央揃えでない分布に拡張されたmasking関数を用いなければならない。幸いなことに、垂直なせん断の不変性は、中央揃えでないマイクロサーフェスのmasking関数が、オフセットされた傾斜を持つ中央揃えであるマイクロサーフェスのmasking関数と同じであることを示している。この性質は、マイクロファセット理論を中央揃えでない分布に拡張する際に、LEADRマッピングで用いられた[Dupuy et al. 2013Dupuy, J., Heitz, E., Iehl, J.-C., Poulin, P., Neyret, F. and Ostromoukhov, V. 2013. Linear efficient antialiased displacement and reflectance mapping. ACM Trans. Graph. 32, 6. 10.1145/2508363.2508422. https://inria.hal.science/hal-00858220v1/file/LEADRmapping.pdf.]

他に挙げられる、中央揃えでない分布に対する重要な考察として、可視投影面積がメゾノーマルから計算されなければならないという点である。BRDFにあるcosθo\cos\theta_oはメゾノーマルの投影面積に置き換えられなければならない。すなわち、ωmˉωoωmˉωg\frac{\omega_{\bar{m}} \cdot \omega_o}{\omega_{\bar{m}} \cdot \omega_g}であり、ωmˉ\omega_{\bar{m}}はメゾサーフェスの法線を表す。メゾサーフェスが幾何的表面である場合、ωmˉ=ωg\omega_{\bar{m}} = \omega_gとなり、ωmˉωoωmˉωg=cosθo\frac{\omega_{\bar{m}} \cdot \omega_o}{\omega_{\bar{m}} \cdot \omega_g} = \cos\theta_oとなるため、これには整合性があるconsistent。さらなる詳細はLEADRマッピングの論文を参照のこと。

(図15:1D形状の垂直なせん断。これはマスキング確率G1G_1を変化させないが、形状のすべての傾斜は定数xˉm~\bar{x}_{\tilde{m}}でオフセットされる。これには、出射方向に関連する傾斜と同様に、マイクロサーフェスの傾斜を含む。その傾斜分布はオフセットxˉm~\bar{x}_{\tilde{m}}でずらされ、00を中心としなくなる。)

6. Smithの結合masking-shadowing関数(The Smith Joint Masking-Shadowing Function)

分離できるmaskingとshadowing(Separable Masking and Shadowing)

最も単純で最も広く使われているmasking-shadowing関数の種類variantは、 Walter et al. [2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.] によって広く知られるようになった分離可能な形式である。この例では、maskingとshadowingは独立であることが想定され、以下のように分けて計算したものをかけ合わせて求めることができる。

G2(ωo,ωi,ωm)=G1(ωo,ωm)G1(ωi,ωm)=χ+(ωoωm)1+Λ(ωo)χ+(ωiωm)1+Λ(ωi)(98)\begin{split} G_2(\omega_o, \omega_i, \omega_m) & = G_1(\omega_o, \omega_m) G_1(\omega_i, \omega_m) \\ & = \frac{\chi+(\omega_o \cdot \omega_m)}{1 + \Lambda(\omega_o)} \frac{\chi+(\omega_i \cdot \omega_m)}{1 + \Lambda(\omega_i)} \end{split} %\label{eq:98} \tag{98}

この形式はmaskingとshadowingとの間の相関をモデル化しておらず、それ故に、いくつかの相関が常に存在するため、常にshadowingを過推定overestimateしてしまう。

高さ相関のmaskingとshadowing(Height-Correlated Masking and Shadowing)

masking-shadowing関数のより正確な形式は、マイクロサーフェスの高さに対してmaskingとshadowingとの間の相関をモデル化する[Ross et al. 2005Ross, V., Dion, D. and Potvin, G. 2005. Detailed analytical approach to the Gaussian surface bidirectional reflectance distribution function specular component applied to the sea surface. Journal of the Optical Society of America A, Optics and Image Science 22, 11, 2442–2453. 10.1364/JOSAA.22.002442.]。直観的な理解として、マイクロファセットがマイクロサーフェスの内部で持ち上げられるis elevatedたびに、出射方向に対して可視となる(遮蔽されていないunmasked)確率と入射方向に対して可視となる(影になっていないunshadowed)確率は同時に上昇する。したがって、maskingとshadowingはマイクロファセットの持ち上げを通して相関を持つ。この相関は、以下の同時masking-shadowing関数the joint masking-shadowing functionの形式で説明される。

G2(ωo,ωi,ωm)S=χ+(ωoωm)χ+(ωiωm)1+Λ(ωo)+Λ(ωi)(99)G_2(\omega_o, \omega_i, \omega_m) S= \frac{\chi^+(\omega_o \cdot \omega_m) \chi^+(\omega_i \cdot \omega_m)}{1 + \Lambda(\omega_o) + \Lambda(\omega_i)} %\label{eq:99} \tag{99}

この形式は、出射方向と入射方向がお互いから遠く離れているときには正確であるが、これらの方向が近いときにはshadowingを過推定する。我々は実践においてin practice式(99)を使うことを提案している。これは、式(98)の分離可能な形式より正確であるのに、計算上の複雑さが同程度であるためである。この形式の導出は付録Bに掲載する。

方向相関のmaskingとshadowing(Direction-Correlated Masking and Shadowing)

maskingとshadowingは出射方向と入射方向が近い場合でも強い相関がある。一般的には、ωo=ωi\omega_o = \omega_iのとき、maskingとshadowingは、方向ωo\omega_oから見えるマイクロファセットが方向ωi\omega_iからも見えるため、完全な相関を持つ。この場合、shadowingは、影になっているマイクロファセットが方向ωi\omega_iから見えず、ゆえに、方向ωo\omega_oからも見えないので、BRDFから取り除かれるべきである。これは、視線の向きと光の向きが平行であるときに影が見えなくなる、“ホットスポット効果hotspot effect”として知られている。BRDFは出射方向に沿って計測された放射輝度をモデル化しているため、shadowingが表面上に存在するのにそれが見えていないのならば、BRDFの一部とするべきではない。

ωo\omega_oωi\omega_iが同じ方位角azimuthal angleを持つとき、完全なfull相関を達成する。この場合、masking-shadowing関数はmaskingとshadowingの最小値で置き換えることができる。 Ashikmin et al. [2000Ashikmin, M., Premože, S. and Shirley, P. 2000. A microfacet-based BRDF generator. Proceedings of the 27th annual conference on computer graphics and interactive techniques 65–74. 10.1145/344779.344814. https://dl.acm.org/doi/pdf/10.1145/344779.344814.] は互いの方向が完全に相関している場合における式(98)の分離可能な形式をブレンドすることで方向に対する相関を説明する。

G2(ωo,ωi,ωm)=λ(ϕ)G1(ωi,ωm)+(1λ(ϕ))min(G1(ωo,ωm),G1(ωi,ωm))(100)G_2(\omega_o, \omega_i, \omega_m) = \lambda(\phi)G_1(\omega_i, \omega_m) + (1 - \lambda(\phi)) \min(G_1(\omega_o, \omega_m), G_1(\omega_i, \omega_m)) %\label{eq:100} \tag{100}

ここで、λ(ϕ)\lambda(\phi)van Ginneken et al. [1998van Ginneken, B., Stavridi, M. and Koenderink, J. J. 1998. Diffuse and specular reflectance from rough surfaces. Applied Optics 37, 1, 130–139. 10.1364/AO.37.000130.] のものと同じような、経験的なempirical係数である。この著者らは関数Λ\LambdaによるSmithの解析的表現を持たないため、maskingとshadowingを分けて計算しなければならなかった。これが、分離可能な形式と完全無相関なfully uncorrelated形式をブレンドしなければならない理由であり、高さ相関を自身のモデルに組み込むことができない理由である。

高さ・方向相関のmaskingとshadowing(Height-Direction-Correlated Masking and Shadowing)

maskingとshadowingとの間にある、方向に対する相関は、方向に対する相関のファクタλ\lambdaを高さ相関の形式に組み込むことでモデル化できる。

G2(ωo,ωi,ωm)=χ+(ωoωm)χ+(ωiωm)1+max(Λ(ωo),Λ(ωi))+λ(ωo,ωi)min(Λ(ωo),Λ(ωi))(101)G_2(\omega_o, \omega_i, \omega_m) = \frac{\chi^+(\omega_o \cdot \omega_m) \chi^+(\omega_i \cdot \omega_m)}{1 + \max(\Lambda(\omega_o), \Lambda(\omega_i)) + \lambda(\omega_o, \omega_i) \min(\Lambda(\omega_o), \Lambda(\omega_i))} %\label{eq:101} \tag{101}

ここでは、maskingとshadowingは、出射方向と入射方向が平行で、かつλ=0\lambda = 0であるとき、完全な相関を持つ。入出射方向のなす角が増加すると、相関は減少し、λ\lambda11に近づく。この場合、maskingとshadowingは方向に対して相関は無く、その数式は高さ相関の形式に戻る。

van Ginneken et al. [1998van Ginneken, B., Stavridi, M. and Koenderink, J. J. 1998. Diffuse and specular reflectance from rough surfaces. Applied Optics 37, 1, 130–139. 10.1364/AO.37.000130.] は経験則的係数λ=4.41ϕ4.41ϕ+1\lambda = \frac{4.41\phi}{4.41\phi + 1}を提案しており --- これは、ωo\omega_oωi\omega_iの方位角の差ϕ\phiに依存し ---、表面のラフネスに対して独立である。 Heitz et al. [2013Heitz, E., Bourlier, C. and Pinel, N. 2013. Correlation effect between transmitter and receiver azimuthal directions on the illumination function from a random rough surface. Waves in Random and Complex Media 23, 3, 318–335. 10.1080/17455030.2013.822611. https://hal.science/hal-00840796/document.] は近年、この問題や、DDをBeckmann分布とするときの表面のラフネスを組み込んだλ(ωo,ωi)\lambda(\omega_o, \omega_i)の解析的な近似についてのより詳細なin-depth研究を公開したpresented。その結果は等方的なBeckmann分布での場合のみだったが、節5で表した伸長不変性を用いて、この結果を異方的なBeckmann分布へと容易に一般化することができる。この形式は、maskingとshadowingの相関を完璧にモデル化しており、式(98)式(99)式(100)で表される形式より正確である。λ\lambdaに対する実用的な形式の導出と非ガウス分布の一般化は、未解決問題open problemsである。

7. 議論と今後の課題(Discussion and Future Work)

その他の一般的に使われるモデルに対するSmithのmasking関数の導出(Deriving the Smith Masking Function for Other Commonly Used Models)

節2では、Beckmann分布とGGX分布について、Smithのmasking関数の解析的な閉形式が導き出せることを確認した。しかし、masking関数は常に、一般的に用いられる法線分布に対して解析的に積分しているわけではない。

例として重要なのが、Phong分布である[Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]Walter et al. [2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.] は、これらが低いラフネス値において近しい見た目を持つため、Beckmann分布に対してSmithのmasking関数を用いることを提案した。しかし、ラフネスが増加すれば、誤差はより顕著significantになる。Phong分布専用の関数Λ\Lambdaの解析的近似を導出するのは興味深いと思われた。 Walter et al. [2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.] は、それが解析的な解法より安価であるという理由から、そのようなBeckmannの近似を提案した。節5で論じたように、Beckmannは形状不変であるため、分布に含まれる情報は一次元でしか無いので、Beckmannに対するそれは簡単に行うことができる。もちろん、形状不変な分布とそれに付随するmasking関数は、傾斜の大きさとラフネスとの割合a=m~αa = \frac{\|\tilde{m}\|}{\alpha}にのみ依存する。これにより、maskingで用いられる関数Λ\Lambdaは、変数aaを持つ一次元の関数にエンコードすることができる。これは、Beckmann分布では有理多項式として効率的に表される。Phong分布で同じことを行おうとすると、形状不変ではないため、aaの一次元関数として表すことができないため、そう簡単にはいかないless straight-forward。しかし、PhongのΛ\Lambda関数が一次元の関数となるまた別の中間量にθ\thetaα\alphaをマージする、または、代わりに正確な2Dフィティングを見つける、といったことは確かに可能である。

そのほかの例としては、GTRと呼ばれるGGX分布の一般化式[Burley 2012Burley, B. 2012. Physically-Based Shading at Disney. Practical Physically Based Shading in Film and Game Production course. ACM SIGGRAPH. https://disneyanimation.com/publications/physically-based-shading-at-disney/.]がある。このmasking関数はまだ発見されていない。

masking-shadowingの相関(Correlation of Masking-Shadowing)

節6で見てきたように、maskingとshadowingをかけ合わせることは、それらの効果が相関を持ち得るため、かなり大雑把な近似である。任意の法線分布に対する相関のあるmasking-shadowing関数の正確で実践的な形式を導出することは未解決問題open problemである。

複数回の散乱(Multiple Scattering)

複数回の散乱をモデル化することは、一般的なBRDFモデルによって不完全に表現されている効果を導入するための可能な方法のひとつである。例えば、BeckmannやPhong、GGXであっても、計測された材質と比べて過度にoverly短い”テールtails”を持つことが知られている[Burley 2012Burley, B. 2012. Physically-Based Shading at Disney. Practical Physically Based Shading in Film and Game Production course. ACM SIGGRAPH. https://disneyanimation.com/publications/physically-based-shading-at-disney/.]。CGコミュニティの最初の反応reflexは、標準のBRDF式を保ちつつ、法線分布を調整するtweakことであった。例えば、 Bagher et al. [2012Bagher, M. M., Soler, C. and Holzschuch, N. 2012. Accurate fitting of measured reflectances using a Shifted Gamma micro-facet distribution. Computer Graphics Forum 31, 4, 1509–1518. 10.1111/j.1467-8659.2012.03147.x. https://inria.hal.science/hal-00702304v1/document.] は計測した材質にフィットするようにシフトしたガンマ分布を用いる。この分布は計算や積分を行うには複雑であり、さらには、モデルを計測データにフィットさせるためにフレネル項を調整しなければならなかった。最終的には、彼らのモデルはフィッティングツールとしてはうまく機能するが、物理的な意味がなくなってしまっているit no longer makes physical sense。同じように、 Burley [2012Burley, B. 2012. Physically-Based Shading at Disney. Practical Physically Based Shading in Film and Game Production course. ACM SIGGRAPH. https://disneyanimation.com/publications/physically-based-shading-at-disney/.] は、計測した材質をより正確に表すため、GGXをより長いテールを作り出すGTRに一般化する。しかし、masking関数はGTRでは利用できない。そこで彼は、代わりに、法線分布との根本的な関連性を損なうviolating the fundamental link withような、調整したmasking関数を用いている。我々がこのモデルで実現できることはほとんどなくなっているように思われる。未だに、物理的正確性を追求する中で、ときにはモデルの物理的原則basisを損なうという代償を払ってまで、さらに限界を押し広げようとするが、それは逆効果counterproductiveである。

モデルをパラメータ化して更に複雑な方法を発明し続けるよりかは、計測データに現れているある種の効果がモデルから単に欠落しているのではないかと自身に問いかけるべきであり、それ故に、代わりとしてそれを拡充する方向で考えるlook toすべきである。多重散乱のモデル化はここでは良い候補に思われる。そして、実際に、物理学の文献ではすでに調査されている[Bourlier and Berginc 2004Bourlier, C and Berginc, G 2004. Multiple scattering in the high-frequency limit with second-order shadowing function from 2D anisotropic rough dielectric surfaces: II. comparison with numerical results. Waves in Random Media 14, 3, 253–276. 10.1088/0959-7174/14/3/004.]。しかし、これらのモデルは、物理学界隈が実装の容易さより正確性を是とするaim forために、極めて複雑である。コンピュータ・グラフィックスのアプリケーションにおいて簡単かつ実践的な方法でモデル化する初めての試みでは、エネルギー保存則と経験的観察の知識を組み合わせることになるだろう。節3.2では、これらが最初の散乱事象をモデル化するのみであるため、shadowingが一般的なマイクロファセットBRDFに導入されることを示した。今後の研究が多重散乱を含んだBRDFモデルを導入するとしたら、以下のようになるだろう。

ρ(ωo,ωi)=ρ1(ωo,ωi)+ρ2+(ωo,ωi)(102)\rho(\omega_o, \omega_i) = \rho_1(\omega_o, \omega_i) + \rho_{2+}(\omega_o, \omega_i) %\label{eq:102} \tag{102}

ここで、ρ1(ωo,ωi)\rho_1(\omega_o, \omega_i)は、shadowingを含めた最初の散乱をモデル化した通常のBRDFを、ϕ2+(ωo,ωi)\phi_{2+}(\omega_o, \omega_i)は新しい多重散乱の関数になるだろう。我々は、多重散乱のBRDFモデルが(フレネルを11としたときに)White Furnace Testを合格することを知っている。

Ωiρ(ωo,ωi)ωgωidωi=Ωiρ1(ωo,ωi)ωgωidωi+Ωiρ2+(ωo,ωi)ωgωidωi=1(103)\begin{split} \int_{\Omega_i} \rho(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i & = \int_{\Omega_i} \rho_1(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i + \int_{\Omega_i} \rho_{2+}(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i \\ & = 1 \end{split} %\label{eq:103} \tag{103}

加えて、多重散乱の項で保存されるエネルギーは、以下のように、最初の散乱の項におけるshadowingで発生するエネルギー損失によって完全に決定されると思われる。

E2+=Ωiρ2+(ωo,ωi)ωgωidωi=1Ωiρ1(ωo,ωi)ωgωidωi(104)E_{2+} = \int_{\Omega_i} \rho_{2+}(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i = 1 - \int_{\Omega_i} \rho_1(\omega_o, \omega_i) |\omega_g \cdot \omega_i| d\omega_i %\label{eq:104} \tag{104}

例えば、粗い表面のサンプルでモンテカルロシミュレーションを計算することにより、ρ2+\rho_{2+}の形は調査できるかもしれない。その形が簡単なものだと判明すれば、最初の近似のように、ノルムE2+E_{2+}の解析的関数で(例えば、単一lobeとして)ρ2+\rho_{2+}をモデル化できるかもしれない。フレネルが11でないとき(表面が透過するとき)、E2+E_{2+}は同様にFFに依存するべきである。最初の近似のように、可視であるFFの平均値をかけることができるかもしれない。それは、以下のように事前計算でき、ルックアップテーブルに格納できるようになるかもしれない。

Fˉωo=ΩF(ωo,ωm)Dωo(ωm)dωm(105)\bar{F}_{\omega_o} = \int_{\Omega} F(\omega_o, \omega_m) D_{\omega_o}(\omega_m) d\omega_m %\label{eq:105} \tag{105}

ここで、Fˉωo\bar{F}_{\omega_o}の乗算は、最初のバウンスのあとに透過したレイの割合によってE2+E_{2+}を再スケールするかもしれない。おそらく、複数回のバウンスのあとのフレネルの平均値は同様に事前計算できるかもしれない。一般的には、多重散乱は関数を平滑化する傾向にあるため、簡単な解析的関数や事前計算された小さなルックアップテクスチャに格納されたりして効率的に表現されると当然reasonably予期できる。

8. 結論(Conclusion)

本稿では、masking関数が可視マイクロサーフェスの投影面積によってどのように法線分布と関連するかを再掲した。この知見の使用とマイクロサーフェス・プロファイルの選択により、masking関数の完全形式を導くことができることが示された。我々は、Smithのマイクロサーフェス・プロファイルに対して、法線とmaskingの独立性を仮定することにより、そして、V型空洞のマイクロサーフェス・プロファイルに対して、V型空洞を作るマイクロサーフェスが分割されていると仮定することにより、これらの導出を作成した。我々はなぜこの後者のモデルが数学的に上手く定義されているにも関わらず現実感を欠いているのかを示した。そのとき、可視法線分布を定義した。これは、正規化とエネルギー保存則を強調するために、BRDFの一般的な形式を導くために使用された。この導出の過程で、我々はshadowingを導入し、様々なshadowingモデルを再調査したreviewed。我々は、そのmasking関数が形状不変であり、どうすればこの性質が既知の結論を異方的な法線分布に一般化するのに使えるかを実証した。我々は、マイクロサーフェス上で発生する最初の散乱事象のみが組み込まれるために、shadowingがBRDFモデルの一般形式の一部でなければならないことを示した。この種のBRDFが上手く定義されていることを確かめるために用いることができる、Weak White Turnace Testを導入した。

最後の節では、70年代から今日までいまだに使われ続けているBRDFモデル[Cook and Torrance 1982Cook, R. L. and Torrance, K. E. 1982. A reflectance model for computer graphics. ACM Trans. Graph. 1, 1, 7–24. 10.1145/357290.357293. https://graphics.pixar.com/library/ReflectanceModel/paper.pdf.]の制約を論じた。最後に、我々は、複雑性が増加するが故に実用性が低下するような、新しい法線分布を導入することによってパラメータ化parametarizationを探し続けるよりも、モデルの拡張することによって、計測された材質に存在する効果をより多く、単純で実践的な方法によって表現できるはずであると提案した。

謝辞(Acknowledgements)

2

A. マスキング関数の導出(Derivation of the Masking Function)

2

B. 高さ相関のマスキング・シャドーイング関数の導出(Derivation of the Height-Correlated Masking and Shadowing Function)

2

Footnotes

  1. 訳注:都合により省略しています。

  2. 訳注:原著を参照してください。 2 3