output.Position = mul(input.Position,xWorldViewProjection);
float4 rPos = mul(input.Position,xWorldViewProjection)
//rPos.xy = screen position [-1 ... 1]
//depth = rPos.z/rPos.w
then multiply (rPos) by matrixLookAt( (light position - camera target), (0,0,0),(0,1,0))
* perspective(Angle,....)