在游戏制作中渲染公式推导(转)[@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/,如需转载,请注明出处,否则将追究法律责任。