Quote:Out of curiosity, are you preforming a matrix multiplication inside the pixel shader to preform shadowing?
Yes. I use it to project the view space position to a uv coordinate and use the same uv / matrix when using
gobos.
As for your speed up:
Did you original method derive the view space position from the G-buffer? If not, how did you derive it?
Quote:Another thing I had to consider was the possiblity of multiple shadow casters, which at higher resolutions was out of the question with forward shadowing.
I cannot see what this should be a problem. I use multiple shadow casters with great ease in the algorithm I use. I simply reuse the shadow map.
The main reason why a speed boost does not make any sense is that you are basically doing the same thing I am, but adding an additional pass with 128 bit render target (where u re-render scene geometry too!). This should seriously affected the fill rate in a negative way. If you this gives you better frame rate then your previous implemenation then I think it is more likely that your previous code has some issue.
I cannot actually see the reason for having this 128 bit render target at all. It just seems like it stores the light space coordinates of the affected geometry, something that is very fast to get in the light shader.
I still might be missing something though
So please say if I have gotten anything wrong.