在遊戲製作中渲染公式推導(轉)

post0發表於2007-08-12
在遊戲製作中渲染公式推導(轉)[@more@]

  L (x->x1) = 積分 ( L (x2->x) * BRDF(x2->x,x->x1) * G (x2,x) * d A(x2)

  

  其中

  L (x->x1) 表示x到x1的光的強度

  L (x2->x) 表示x2到x的光的強度

  BRDF(x2->x,x->x1) 表示從x2->x,x->x1的BRDF

  G (x2,x)= vis(x,x2) *cos(N)*cos(N2)/(length(x2,x) N1,N2分別為x,x2的法線和連線的夾角

  vis(x,x2)表示x,x2的可視關係

  

  過程:

  

  我們可以知道從x2->x的能量傳遞是

  d F(x2->x) = L(x2->x) * d A(x2) * vis(x,x2) *cos(N2) * dw(x2->x)

  d F(x2->x) = L(x2->x) * d A(x) * vis(x,x2) *cos (N) * dw(x->x2)

  照度:

  d E(x2->x) = L(x2->x) * vis(x,x2) *cos(N) * dw(x->x2)

  

  我們知道 L = E * BRDF

  於是:

  d L(x->x1) = d E(x2->x) * BRDF(x2->x,x->x1)

  = L(x2->x) * vis(x,x2) *cos(N) * dw(x->x2) * BRDF(x2->x,x->x1)

  

  積分後得到:

  

  L(x->x1)=積分 L(x2->x) * vis(x,x2) *cos(N) * dw(x->x2) * BRDF(x2->x,x->x1)

  

  d w(x->x2) = (cos(N2)/length(x,x2)) * d A(x2)

  

  帶入上面的方程:

  L (x->x1) = 積分 ( L (x2->x) * BRDF(x2->x,x->x1) * vis(x,x2) * (cos(N) * cos(N2) )/length(x,x2) * d A(x2)

  

  我們把vis(x,x2)* (cos(N) * cos(N2) )/length(x,x2)使用G(x2,x)代替表示幾何關係這樣就得到了最上面的方程

  

  L (x->x1) = 積分 ( L (x2->x) * BRDF(x2->x,x->x1) * G (x2,x) * d A(x2

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-951801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章