kabir

09-06-2001, 02:40 PM

Hiya,

I've been cruising along learning OpenGL out of the SuperBible, and I just got to the bit about planar shadows. The methodology presented (use a shadow matrix to multiply the projection matrix and "squish" the object into a plane) makes sense to me, but I'm annoyed that there is no explanation of the derevation of that shadow matrix.

Here's an example of the shadow matrix I'm talking about http://www.opengl.org/developers/code/features/StencilTalk/tsld021.htm

Now, I know that there are problems with this methodology, and that there's some other stuff I need to be doing to generate good planar shadows (stencil tests, etc.) but I'm not concerned with any of that right now. Now I'm just trying to hunt down some clues to the derivation of that bloody matrix. I've sat down and gone through the derivations for planar geometric projections with the DOP coincident with (or at least parallel to) the z axis, as well as those where the DOP is not conincident to the z axis but the projection plane is perpendicular to the z axis, but I can't seem find any reference about making the projection onto an arbitrary plane, nor do I seem able to make the leap to the derivation myself (though I haven't quit trying!). Mostly I've been working out of Computer Graphics: Principles and Practice ( http://www.amazon.com/exec/obidos/ASIN/0201848406/ ) so far, but as the projections discussed there are intended for the primary viewing projection they solve the problem via normalizing transformations, which is grand but doesn't help me generate a shadow matrix (though I'm investigating the possibility of incorporating a normalizing transfomation into my shadow matrix - I haven't yet worked out if that's feasable or will produce the correct effect yet).

If anyone could point me to a resource for finding that derivation I would appreciate it very much - I don't like simply accepting the matrix I've been handed without understanding where it came from.

Thanks

I've been cruising along learning OpenGL out of the SuperBible, and I just got to the bit about planar shadows. The methodology presented (use a shadow matrix to multiply the projection matrix and "squish" the object into a plane) makes sense to me, but I'm annoyed that there is no explanation of the derevation of that shadow matrix.

Here's an example of the shadow matrix I'm talking about http://www.opengl.org/developers/code/features/StencilTalk/tsld021.htm

Now, I know that there are problems with this methodology, and that there's some other stuff I need to be doing to generate good planar shadows (stencil tests, etc.) but I'm not concerned with any of that right now. Now I'm just trying to hunt down some clues to the derivation of that bloody matrix. I've sat down and gone through the derivations for planar geometric projections with the DOP coincident with (or at least parallel to) the z axis, as well as those where the DOP is not conincident to the z axis but the projection plane is perpendicular to the z axis, but I can't seem find any reference about making the projection onto an arbitrary plane, nor do I seem able to make the leap to the derivation myself (though I haven't quit trying!). Mostly I've been working out of Computer Graphics: Principles and Practice ( http://www.amazon.com/exec/obidos/ASIN/0201848406/ ) so far, but as the projections discussed there are intended for the primary viewing projection they solve the problem via normalizing transformations, which is grand but doesn't help me generate a shadow matrix (though I'm investigating the possibility of incorporating a normalizing transfomation into my shadow matrix - I haven't yet worked out if that's feasable or will produce the correct effect yet).

If anyone could point me to a resource for finding that derivation I would appreciate it very much - I don't like simply accepting the matrix I've been handed without understanding where it came from.

Thanks