オーレン・ネイヤー反射

提供: miniwiki
移動先:案内検索

オーレン・ネイヤー反射(Oren–Nayar reflectance model)とは、Michael OrenとShree K. Nayarが1993年に提唱した、粗面における拡散反射反射率のモデル。

反射率のモデルとしてよく使われているランバート反射などと比較して、コンクリート・石膏・砂と言った、自然界で広く見られる物体の表面を正確に表現できるのが特徴。

概要

オーレン・ネイヤー反射率モデルでは、オブジェクトの表面(サーフェス)に微小な平面(微小面、マイクロファセット)を仮定することで、粗面の拡散反射の反射率を近似する。このモデルはランバート反射モデルの一般化としても見ることができる。

オーレン・ネイヤーはサーフェスのそれぞれのファセットの頂点間における「マスキング」「シャドーイング」「相互反射」と言った複雑な物理的現象を考慮するため、ランバートと比べて計算量が膨大になるが、2010年代以降はコンピュータゲームでの採用も始まっている。

オーレン・ネイヤー反射率モデルは、陰影や明度からオブジェクトを立体として認識する際の人間の視覚や、コンピュータビジョンを解析する上でも大いに示唆に富むと見られている。

解説

ファイル:Oren-nayar-vase1.jpg
サーフェスが粗面である花瓶のオブジェクトの実際の画像と、ランバートでシェーディングした物との比較。ランバートでは粗面の拡散反射が上手く表現できず、特に粗面が短縮されたオブジェクトの側面で顕著である。なお照明は視点方向から

反射率とは、入射光をどのように反射するかを表すマテリアルの物理的特性のことを意味する。様々なマテリアルの見た目は主に反射率の特性によって決定される。多くの反射率のモデルは拡散光(ディフューズ)と反射光(スペキュラ)という、2つのカテゴリーに分けられる。コンピュータビジョンコンピュータグラフィックスの世界では、拡散光のモデルとしてランベルト(ランバート)が1760年に提唱したランバート反射がよく使われており、ランベルトの余弦則に従いどの方向から見ても均等に明るく見える。しかしランバート反射では物体表面(サーフェス)の粗さ(ラフネス)を考慮しないため、コンクリート・石膏・砂と言ったサーフェスが粗面のオブジェクトを表現する場合にはしばしば不正確な近似となる。

粗面とは、異なる傾きを持ったファセットの集合として捉えることができ、またそれぞれのファセットは極小の平面の一区画(パッチ)として捉えることができる。しかし網膜の受容体やカメラのピクセルなどと言った検出器の解像度は共に限界があるため、ミクロな単一のファセットそれぞれではなく、複数のファセットがひとまとめにされたマクロな輝度値が次々と生成され、それが実質的な物体表面の粗さとして一つの検出器に投影される形となる。ランバートを単一の平面のファセットごとに適応した場合はかなり正確な近似を得られるのに対し、それぞれ異なった方向を持つ複数のファセットのひとまとめごとに適応した場合はかなり厳しい結果となる。その主な理由は、短縮されたファセットのひとまとまりは見る角度で異なった見え方をする、つまり、サーフェスの見た目が視点の角度に依存するような状態となるからである。

ファイル:Oren-nayar-surface.png
複数のファセットがひとまとめにされ、1ピクセル以下にまで縮小されてしまう。こうなるとランバートではお手上げ

このようなマクロな拡散反射特性を示す粗面の反射率の解析は、元々はCGではなく月面の非ランバート反射の解析を主な動機付けとしていたが、約1世紀にわたって研究者を悩ませてきた。しかし長年の研究の結果、実験データと第一原理から導かれる理論的結果にフィットするような、経験的なモデルがついに導かれた。それがMichael OrenとShree K. Nayarが1993年に提唱したオーレン・ネイヤー反射率モデルである[1]。1994年度のSIGGRAPHで発表された。

方程式

オーレン・ネイヤー反射率モデルで使用されるサーフェスのラフネスのモデルはTorranceSparrowによって提案されたマイクロファセットモデルから導き出されたもので[2] 、サーフェスを長いシンメトリックなV字型の凹みのあつまりで構成されているものと仮定する。それぞれの凹みは2つの平面のファセットで構成されているものとする。サーフェスのラフネスは、ファセットの傾斜の分布を示す確率関数を用いて明示される。特にガウス分布が用いられる事が多いので、ガウス分布の分散を表す「[math]\sigma^2[/math]」がサーフェスのラフネスの尺度として用いられる。ファセットの傾斜の標準偏差(サーフェスの高さの勾配)「[math]\sigma[/math]」は [math][0, \infty][/math] の範囲で表される。

オーレンネイヤー反射では、各ファセットはランバート反射であると仮定される。右図に示したように、入射光の放射輝度[math]L_i[/math] とし、反射光の放射輝度を [math]L_r[/math] とすると、オーレンネイヤー反射率モデルに従い、

[math]L_r = \frac{\rho}{\pi}\cdot \cos \theta_i\cdot (A + (B\cdot \max[0,\cos(\phi_i-\phi_r)]\cdot \sin \alpha \cdot\tan \beta))\cdot L_i[/math]

ここで

[math]A = 1-0.5\frac{\sigma^2}{\sigma^2+0.33}[/math],
[math]B = 0.45\frac{\sigma^2}{\sigma^2+0.09}[/math],
[math]\alpha = \max(\theta_i, \theta_r)[/math],
[math]\beta = \min(\theta_i, \theta_r)[/math],

また、[math]\rho[/math]はサーフェスのアルベド[math]\sigma[/math]はサーフェスのラフネスとし、[math]\sigma=0[/math] の場合を考えると(すべてのサーフェスが同一平面である場合など)、 [math]A=1[/math][math]B=0[/math] となり、従ってオーレンネイヤー反射はランバート反射に単純化されることとなる。

[math]L_r = \frac{\rho}{\pi}\cdot \cos \theta_i\cdot L_i[/math]

レンダリング結果

ここでは表面がザラザラした花瓶の実際のイメージと、ランバート反射とオーレン・ネイヤー反射でレンダリングした際のイメージを比較している。オーレン・ネイヤー反射を用いるとランバート反射よりも粗面の拡散反射を上手く近似できていることが解る。

ファイル:Oren-nayar-vase3.jpg
レンダリングされた花瓶と実際の花瓶の輝度を、線で表して比較している。オーレン・ネイヤー反射の線は、リアルの花瓶の線にかなり近い

オーレン・ネイヤー反射を用いてレンダリングした球のイメージ。異なったラフネスそれぞれに対応している ([math]\sigma[/math] の値で表される):

600px

他のマイクロファセット反射率モデルとの関連

Oren-Nayar model Torrance-Sparrow model Microfacet model for refraction[3]
Rough opaque diffuse surfaces Rough opaque specular surfaces (glossy surfaces) Rough transparent surfaces
Each facet is Lambertian (diffuse) Each facet is a mirror (specular) Each facet is made of glass (transparent)

関連項目

参照

  1. M. Oren and S.K. Nayar, "Generalization of Lambert's Reflectance Model". SIGGRAPH. pp.239-246, Jul, 1994
  2. Torrance, K. E. and Sparrow, E. M. Theory for off-specular reflection from roughened surfaces. J. Opt. Soc. Am.. 57, 9(Sep 1967) 1105-1114
  3. B. Walter, et al. "Microfacet Models for Refraction through Rough Surfaces". EGSR 2007.

外部リンク