➡️ 目錄
而我低頭拆信 想知道關於L的事情 🎶
2年前
我被這個問題困惑 📧
「半球積分的dω不是要從光源的觀點思考?才能知道物體遠近嗎?」
吉人之辭寡 躁人之辭多
教授只是回覆我 📧
「渲染方程的dω是從shading point的觀點思考」
等等教授
你可以再說清楚一點嗎?
可是這樣怎麼知道物體的遠近?
經過2年的放置play後
我終於get到了
放置 play BGM |
渲染方程中
半球積分的 Li dωi 到底是什麼?
dωi 到底是什麼?
思路1:模仿面光源
整片面光源對shading point P 的貢獻是 E
Integrals over Area E = ∫ dE 出處 dω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
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
沒有留言:
張貼留言