https://patapom.com/blog/Math/ImportanceSampling/
https://www.tobias-franke.eu/log/2014/03/30/notes_on_importance_sampling.html
https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf
因為normal distribution 的半球積分 要乘cos 才等於1 這里是對能量的一個積分 涉及了n和l方向的一致性所以乘了costheta 遵循的是能量守恆
各個光照模型歸一化(可能是叫這個名字)求這個歸一化參數的時候都要用全域積分=1來算
pdf的半球積分 也等於1
ggx里面兩個參數 要用條件概率來降低維度
這里補充下 2維pdf這部分的處理
通過這個
多維度的情況
第二行 pdf theta|phi寫反了應該是pdf phi|theta
對於這個 把phi積分起來0-2pi 把thera當變量
大概是這樣
這里不應該有sintheta 這倆鏈接已開始對pdf定義少了個sintheta 后者只是把dw拆開 sinthetadthera來寫
對於ggx
因為
paper里 這里寫的是對的
鏈接里 這里不太對 也就是上面摘錄的最后一步
應該是
即
float CosTheta = sqrt( (1 - E.y) / ( 1 + (a2 - 1) * E.y ) );
float Phi = 2 * PI * E.x; float CosTheta = sqrt( (1 - E.y) / ( 1 + (a2 - 1) * E.y ) ); float SinTheta = sqrt( 1 - CosTheta * CosTheta ); float3 H; H.x = SinTheta * cos( Phi ); H.y = SinTheta * sin( Phi ); H.z = CosTheta;
啊寫的不連貫 過三天我自己就忘了
用ggx的ndf
求pdf
再求cdf
再求cdf的逆就是采樣點 因為是重要性采樣 這個采樣點很接近H
LV的中間 采樣點是球面上的點 所以嚴謹的說是個方向 用θφ定義