I have a problem about shadow. For example, if I have point light L(x,y,z), some point object V(v1,v2,v3), and any plane Ax+By+Cz+D=0, how can I find the shadow matrix, I mean the point V’s shadow in the plane Ax+By+Cz+D=0.
The question has nothing to do with shadows, so looking for shadow mapping (projective or otherwise) won’t be useful.
If you know the plane P, vertex v and light position l, then the point the question is talking about is the intersection of the line lv with the plane P.
if l and v are given in homogeneous coordinates then the line equation lv is (l-v)*lambda+l (where lambda is the scalar parameter).
The intersection of lv with P is given by
lv*p’ = 0
and you have to solve for lambda.
However: what is probably more useful is to construct a matrix with l as the optical centre and P as the image plane. THis is… er… more complicated to describe. The easiest way (I think) would be to compute n = the orthogonal vector from l to p and then transform the plane so n points down the negative z axis and then work out the range of your light source and construct the left/right/top/bottom planes by backprojecting the fov onto the transformed plane and using the LRTB parametrs to construct an opengl matrix.