2023年4月3日 星期一

半球積分的Li dωi ⭐

➡️ 目錄


而我低頭拆信 想知道關於L的事情 🎶

2年前
我被這個問題困惑 📧
「半球積分的dω不是要從光源的觀點思考?才能知道物體遠近嗎?」

吉人之辭寡 躁人之辭多
教授只是回覆我 📧
「渲染方程的dω是從shading point的觀點思考」

等等教授
你可以再說清楚一點嗎?
可是這樣怎麼知道物體的遠近?

經過2年的放置play後
我終於get到了

放置 play

BGM

渲染方程中

半球積分的 Li dωi 到底是什麼?
i 到底是什麼?

思路1:模仿面光源

整片面光源對shading point P 的貢獻是 E

Integrals over Area
E = ∫ dE
出處

i = cos(θo) dA / r 2 
dE⊥ = L dωi
dE = cos(θi) L dωi


從shading point dA發射射線
  • ①擊中物體表面dA時,可以得到物體表面dA的Lo
  • ②擊中光源表面dA時,可以得到光源表面Lo

但因為 dω = dA / R2
dω R2 = dA
這個dA會覆蓋多個dA
所以記作 A = dA

可以把①也看成面光源
我們就可以模仿上面的Integrals over Area

使用平行的力量



上圖的Li dωi 其實是下圖上半部那種情況

用到的符號

最左邊
Li dω= dE⊥

Warning!

上述假設所有dA都會在一個平面上

但如果不是

而是有起伏的表面B怎麼辦?

Co = cos(θo)不再是定值
但把構成B的dA沿著dω方向投影後
仍會得到平面Ap
∫ dA cos(θo) = Ap
dω = Ap / R2

思路2:直接使用 dω

不糾結於光源dA
只看shading point dA的dω取多大
由Received L的定義可知
dE⊥ = L dω
dω取愈大,dE⊥自然也愈大

考慮不同射入方向時自然有
dEi = cos(θi) L dωi

用思路2反推A的大小

已知 dE = L dω
又因為 dω = A Co / R2
A = ∫ dA
當dω變大,代表有更多的dA對shading point貢獻dE

補充

在半球積分時
光隨距離衰減,如何涌現

有1種path tracing 是不做直接光照
只靠Le來照亮場景
(Le來自面光源P)

假設對shading point只計算1層
Lo  = Le + ∫ F Li cos(θi) dωi 時
(不往下遞迴)

單看 Lo  = Le + ∫ F Li cos(θi) dωi 這部分
當面光源P靠近shading point
半球積分採樣到的Le
反之,採樣到的Le
➡️ Geogebra

沒有留言:

張貼留言