人生初心者の雑記

すべてにおいてド素人な人がいろんなことを書くよ

逆関数法とパストレ

レンダリングにおけるimportance samplingの基礎shikihuiku.wordpress.com
パストレではある点からある方向への放射輝度を計算するときに。球面上の点を一様にサンプリングする必要がある。逆関数法が関係してるのだが、初めて見たときはよくわからんかった。


z軸のサンプリングについて説明する。
1.満たさないといけないもの
z=1-cosΘ
P(Z<=z)=z

2.同値
z=1-cosΘ
P(1-cos日<=1-cosΘ)=1-cosΘ (日は角度の確率変数のつもり)

3.同値
z=1-cosΘ
P(日<=Θ)=1-cosΘ

4.1-cosΘのような乱数を生成したいので、
P(U<=u)=u
からFを作用し
P(F(U)<=x)=1-cosx
をつくることを考える。


5.①P(U<=u)=u
②P(F(U)<=x)=1-cosx
が同時に成り立つとする

6.①より、Pの両辺にFを作用して
P(F(U)<=F(u))=u

7.②においてx=F(u)のとき
P(F(U)<=F(u))=1-cosF(u)

8.6,7の右辺より
u=1-cosF(u)

9.変形
F(u) = arccos(1-u)
これは1-cosxの逆関数である。


4~9までの手順が逆関数法の導出と一致してる。たぶん。

また、球面上のサンプリングにおけるx,yの取り方はもう少し難しい。
レンダリングにおけるimportance samplingの基礎shikihuiku.wordpress.com



気づき
1をみてて、F(T)がF-1で分布するとき、Tは一様分布なんじゃねとおもった。(逆関数法の逆)
(1において、z=1-cosΘでzを一様分布させようとして、9で日=1-cosu になったから)

a[逆関数]
P(U<=u)=u-> P(F(U)<=x)=F-1(x)

b[逆関数法の逆]
P(F(U)<=x)=F-1(x) -> P(U<=u)=u

逆の証明
同値(左側のPの中身にF-1を作用し、右側のPにFを作用する)
P(U<=F-1(x))=F-1(x) -> P(F(U)<=F(u))=u

同値(変数の名前の調整)
P(U<=t)=t -> P(F(U)<=k)=F-1(k) (もともとの逆関数法と主張が一致)


ファッ!?
よって逆関数法は、主張の逆も成り立つ。

これらを使うと以下のことが言える。


一様乱数UにFを作用するとF-1(x)の乱数ができる


Z=G(T)を一様乱数にさせるには、bよりT=G-1(Z)がGで分布するようにすればよい(F=G-1)。TをGで分布させるには、aより(F=G-1)
T=G-1(U)で生成すればよい(Uは一様乱数)

つかいわけていきましょう