2021年10月28日 星期四

Diffuse BRDF推導過程的疑惑

➡️ 目錄

CG 魚書ch 13.8裡Perfect Diffuse BRDF的 推導過程

reflectance即albedo(texture color)
(13.9)就是render equation裡的半球積分 只考慮RGB其中1個component (且值為1) 有Diffuse BRDF為 F= 1 / π

有個地方讓我困惑

第1個黃色

告訴我們
往不同方向出去的Lo有個cos(θo)修正

第2個黃色

卻告訴我們進入dA 的E 會平均分到半球的各個方向 (各方向出去的Lo為定值)

實際來算算看

假設所有Li都相等

當F = 1 / π

跑1次 式13.11
E = ∫ cos(θi) Li
會得到 E = Li * π B
跑1次 式13.9
Lo = ∫ F cos(θi) Li
會得到 Lo = Li * F * π
使用F = 1 / π
會得到
Lo = Li 式C
(代表E在任1個方向o會產生Lo)
那所有方向o 就是跑1次 式 13.12
E = ∫ cos(θo) Lo
E = Lo * π 式A

因為式C 所以
式B = 式A
E = E
能量守恆
如果跑式13.12 時忽略cos(θo)項
E = ∫ Lo
Eo = Lo * 2π
就沒有能量守恆了

當F = cos(θo) (1 / π)

跑1次 式13.9
Lo = ∫ F cos(θi) Lii
會得到
Lo = F Li cos(θi) i
Lo = cos(θo) (1 / π) Li π
Lo = cos(θo) Li 式D

再跑1次 式13.12 (不使用cos(θo) )
E = ∫ Lo
會得到
Eo = ∫ Lo dωo
Eo = ∫ cos(θo) Li dωo
Eo = Li cos(θo) dωo
Eo = Li π

實際來畫畫看

光用猜的也知道
F = cos(θo) * (1 / π) 的結果會很奇怪
現實生活中沒看過球的輪廓是黑黑的一圈

F = 1 / (π)

F = cos(θo) * 1 / (π)

到底那出了問題?

看起來像是

迷團(1)

面光源進行直接光照的計算

Lo要乘上cos(θo)


迷團(2)

從diffuse物體直接到達眼睛的Lo不用
為什麼有(1)和(2)的區別
迷團(3)

如果直目(直接目視)面光源

面光源對眼睛來說是Lo 還是 Lo * cos(θo) ?

解開迷團?

我感覺迷團(2)的答案和透視有關
透視不只是近大遠小
還包括dA的朝向

沒有留言:

張貼留言