Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BRDF レンダリングの方程式

22,197 views

Published on

BRDFの関数について記載しています。
フレネル、屈折率の計算部分など書きました。

学部生時代に書いたノートです。(2007年)
当時BRDFをJAVAで実装しまして、備忘録として残しました。
実装する上で理解するために作成したので、
少し噛み砕いた形で記載されているとおもいます。

もし何か質問がある場合は次までおねがいします。
@rocky_house

Published in: Technology
  • Be the first to comment

BRDF レンダリングの方程式

  1. 1. BRDF 双方向反射分布関数 Yasuhiro Todoroki
  2. 2. 理論 物体の情報(色、質感など)は、光源か らのエネルギーが物体に反射してエネル ギー情報が変化し、その変化したエネル ギーを目が受取り、情報を判断する。 双方向という意味は、 視点と、光源が入れ替わっても、受け取 るエネルギーが等しいことを意味する。 つまり、現在の目の位置に、光源が、 光源の位置に目が行った際、 光源の位置に行った目が受け取るエネル ギーは前のエネルギーと変化がない。 ( Helmoholtz の相反性)
  3. 3. BRDF とは その場所の色は、表面上の ・形状、材質、特製など、様々な要因による。 それらをオブジェクト毎に細かくモデル化し、描画する。 分布関数 幾何減衰率 フレネルの関数 の三つを用いて BRDF はモデル化される。 BRDF モデルによる質感表現
  4. 4. 表面分布特性( BRDF のモデル 化) 物体の表面は完全に滑らかではなく、材質によって異なっている。その表面の 粗さ(光沢や艶と呼ばれる性質)に対する光現象をモデル化し、数式化する。 つまり表面での凹凸によって生じる光の散乱を表現する。 金属のような材質感の表現に向く。 入射光 反射光 光の散乱 表面の粗さ
  5. 5. 表面分布特性( BRDF のモデル 化) 物体の面は小さな凹凸を持つ微小面の集まりと考え、それら微小面が鏡面反射す ると考える。 N H : L と V との垂直二等分線    H L γ V θ H の分布は鏡面反射する微小面の 向きの分布を表すと同時に表面の 粗さによる鏡面反射光の輝度分布 を表す。 つまり、この分布を求めることに より、鏡面反射の輝度が求まる。 θ 物体表面 微小面 H を法線ベクトルとする微小面が物体表面に存在すると考える。 cosγ = N ・ H
  6. 6. Microfacet Distribution Function 微小面勾配分布関数 分布特性には、一般に次式の分布関数を用いる。 様々な分布関数が存在する ガウス分布関 数 ベックマン分布関数 Cook と Torrance が使用した方式。 Reitz の分布 関数より優れた理論根拠を持っているといった。 Reitz の分布関数を使用すれば Blinn モデルとなる 。 D(γ ) = C exp(−(γ / m) 2 ) γ は前述の角度 1 −[ (tan γ ) ]2 m D = D ' (m, γ ) = e 4m 2 cos 4 γ cosγ = N ・ H m = 0.2~0.7 m が小さければ反射は鋭い指向性を持ち、大きいと反射光が散乱 する。 いくつもモデリングする場合は単純に和で求まる。 D= ∑ w D(m ) 1≤ j ≤ n j j Wj の和は1である
  7. 7. Microfacet Distribution Function 微小面勾配分布関数 ブリン( Blin )
  8. 8. 幾何減衰率 (The Geometrical Attenuation Factor) 物体表面の微小面は小さな凹凸をもっているので、これに光が当たると光の 入射角と微小面の関わりによって光が遮れられる。 値が 1 より小さい時光は遮れられるから、この値を、入射角によって影響を 受ける減衰率とみなすことができ、幾何学的減衰係数 G と定義できる。減衰 率 G の範囲は 0( 完全なシャドウ ) ~ 1( シャドウなし ) である。また値は 1 より大きいことはない。 2( NH )( NL ) Gb = VH 直接光が遮られる 反射光が遮られる Gc = 2( NH )( NV ) VH ※ それぞれ単位ベクトル G = min{1, Gb, Gc}
  9. 9. フレネルの方程式 (The Fresnel Term) phone shading でいうところの鏡面反射係数( Ws(θ) )に相当する反射率 F ( λ,θ )を導入する。光の反射は光の波長に左右されることと、角度に依存する ことを考慮した鏡面反射率である反射率 F ( λ,θ )は以下の Fresnel の式を使用す る。   c( g + c) − 12  1 ( g − c) F (λ , θ ) = 1 +    2 2 ( g + c)   c( g + c) + 1    c = cos θ = (VH ) = ( LH ) 2 g 2 = ηλ + c 2 − 1 2 η λ = η tλ η iλ θ :入射角 ηλ   : 屈折率 ηiλ 第一媒体 ηtλ 第二媒体 導体の媒質は光を減衰するため、物体の複素屈折率を考慮する必要がある。 ηλ= ηλ-ikλ kλ は物質の吸光率
  10. 10. BRDF の式の決定 微小面勾配分布関数 幾何学的減衰関数 反射率 I spec D(γ) G F(λ 、 θ) F (λ ,θ ) D (γ )G = π ( NV )( NL ) 以上から、 BRDF は一般化される。 Ispec は鏡面反射光の輝度
  11. 11. BRDF の式全体 Ka I = Kdρ (λ ,θ ) + Ksρ s (λ , VH ) • D • G • ( NL)    Ks : π ( NV ) I = Kdρ (λ ,θ ) + Ksρ s (λ , VH ) • D • G • ( NL)   環境光 鏡面反射 反射率 光の波長 R,G,B ベクトルの掛け算 NL  光の入射角 H →   L と V の harfVector H   = (L+V)/2 D : Distributing function 光の拡散率  : Backup 式 →   D(NH) G : 減衰率(ざらざらを)表現    ブリン式に基づく Kd ・ Tx ・ ρ(λ,θ) 全体の reflectance
  12. 12. Ashikhmin 照明モデル ρ (V , L) = ρ d (V , L) + ρ s (V , L) ρd :diff ρs :spec ρ(V,L) は二つに分解可能である。 Secular 成分について見ていくと、 phong のモデルとして以下の式が挙げられる。 ( NH ) ρ s (V , L) = c NL n しかしこの時 ,ρd(V,L)=ρd(V,L) でないため Helmoholtz の相反性を満たしていない。 そのため相反性を満たす Neumann & Neumann の BRDF の式+金属物質の関係式 Frensel 項 が追加された式は以下の通りである。 n ( NH ) ρ s (V , L) = c F ( KH ) K は L か V のどちらか max( NV , NL)
  13. 13. Ashikhmin 照明モデル Ashikhmin らは、この BRDF に異方性を追加した。 異方性は、反射のパラメータ n を拡張。 n に関して、従法線ベクトル方向 u 、接ベクトル方向 v に応じて反射率が違うものと 設定。 ここで、従法線ベクトルや接ベクトルは、それぞれの局所座標で直行する必要がある 。 N しかし場所に応じて向きは異なり、例えば、CDの裏面をレンダリングしようと思え ば、 従法線ベクトルや接ベクトルは、CDの動径方向と、円周方向に取るのが適切で ある。
  14. 14. Ashikhmin 照明モデル Ashikhmin らによる BRDF は、次のようになる。 nu cos 2 φ + nv sin 2 φ ( NH ) ρ s (V , L) = c F ( KH ) max( NV , NL) nu = nv の異方性がないときには、 Ashikhmin らの BRDF は、 Neumann & Neumann の BRDF と一致 係数cにおいては以下の通り R(V ) = ∫ ρ (V , L) cos θ | dθ | ≤ 1 Ashikhmin らは、拡散光成分に関しても議論しており、彼らは、 Shirley らによ る総エネルギーの保存を考慮した、拡散光に関する BRDF も導いたページに式を 記載する。
  15. 15. Ashikhmin モデルで使われる BRDF の 式 1 2 1 2 nu cos 2 φ + nv sin 2 φ (nu + 1) (nv + 1) ( NH ) ρ s (V , L) = Rs F ( KH ) 8π ( HK ) max( NV , NL) 28 NV 5 NL 5 ρ d (V , L) = Rd (1 − Rs )(1 − (1 − ) )(1 − (1 − ) ) 23π 2 2

×