|
|
关于阴影矩阵的推导, 遇到了意外的挫折.....
出于好奇, 我自己推导了一下. 本来以为很简单, 结果发现无论怎么推导, 结果都是反的.
无论是点光源, 还是平行光源.
以平行光源为例吧: L 为方向向量
射线方城为
R(t) = P + t×L
带入平面方程
N dot P + d = 0
N dot [ R(t) ] + d = 0
得出 t = -( N dot P + d )/( N dot L )
那么, 交点即为
r( t ) = P - ( N dot P + d )/( N dot L )×L
那么
r( t )x = Px - ( Nx× x + Ny×Py + Nz×Pz + d )/( N dot L )×Lx
设 N dot L = K
K × r( t )x = (K - NxLx)×Px - NyLx×Py - NzLx×Pz - d×Lx
K × r( t )y = ....
K × r( t )z = ....
最后齐次化, 同除K. 得出的结果矩阵是
M =
(K - NxLx) - NxLy - NxLz 0
- NyLx (K - NxLy) - NyLz 0
- NzLx - NzLy (K - NzLz) 0
- d Lx - d Ly - d Lz K
和微软与龙书的标准答案符号正好相反....
点光源也是一样, 也是相反.
请问各位我这哪里错掉了? -_-b..... [em7] [em21]
|
|