拡散環境マップ
- 理論的つじつまがあってきた。
ある値はπ/Nθ·Nφだ。多分。
- 2π/Nθ·Nφだった。
- 拡散環境マップをつくる方法
ざっと説明してみる。
ある微小面におけるirradianceの和はその法線との入射角をθ*1とすると、ランバート則に従うのなら以下の式のようになる。
I = ∫L(ω)·cosθdω
I = ∫L(ω)·max(0,<n,ω>)·dω
dω = sinθdθdφ
I = ∫∫L(ω)·max(0,<n,ω>)·sinθdθdφ
これを総和の形に直す。このときsinθで補正した分、全体量が1/2πとなり、小さくなるのでこれを考慮して2πをかけてやり
Nθ·Nφをθ、φのサンプリング数とすると以下の式になる。
I = 2π/( Nθ·Nφ)ΣΣ{L(ωi)·max(0,<n,ωi>)·sinθ}
ただしθを0からπまで、φを0から2πまでに対応付けるとする。
ここから球面マッピングされた天空画像から拡散環境マップをえて
out(o_θ,o_φ) = 2π/( Nθ·Nφ ) ΣΣ{sky(θ,φ)· max(0,<n(o_θ,o_φ),ω(θ,φ)>)·sinθ}
とする。
放射輝度は
I = ∫L(ω)cosθdω
F = ∫cosθdω
F = ∫cosθdω
= ∫∫cosθsinθdθdφ
= ∫dφ∫cosθsinθdθ
= φ/2·2·-cos2θ/2
= φ/2·(1-cos2θ)
F = π