➡️ 前篇
讀了CG 鼠書
書上把direct light和indirect light分開考慮
代碼來自 CG 鼠書 |
direct light
- 點光源單位是I
- 面光源單位是L
indirect light
- 用了蒙地卡羅和俄羅斯輪盤,光源單位是L
- Render Equation的半球積分就是indirect light
直接光照 ➡️ 點光源
E擊中dAs = cos(θi) I / R2
12.3 Point Lights |
代碼來自 CG 鼠書 |
代碼來自 CG 鼠書 |
蒙地卡羅積分
間接光照
代碼來自 CG 鼠書 dω用了蒙地卡羅積分後就消失了(只取樣1個光源) u是介於0~1的亂數值
ρ 是俄羅斯倫盤,,如果u是0.75
當ρ>0.75 會return 0 也就是有25%的機會採樣失敗
當ρ<0.75,return的值就要會做*1/ρ的修正
(把採樣失敗的能量補回來)
|
看完程式碼後,可以發現
半球積分時並沒有距離衰減項
蒙地卡羅積分
先不看ρ
最後會return integrand *4π
integrand *4π = integrand / (1/4π)
就是只取樣1次函數值的蒙地卡羅積分
機率密度函數 p(dω)=1/4π
俄羅斯倫盤
沒有留言:
張貼留言