And the depth shader doesn't have the camera frustum info needed to do the reconstruction.
But should not be an issue. Just change the color of the outgoing pixel to the error of the reconstruction.
Btw. you don't need to reconstruct the point in viewspace by using the interpolated FrustumCornerVS, you can do it directly from the screencoord (gl_fragcoord in GLSL, I'm sure there's an equipvalent in HLSL) and by the size of the near plane in world coords:
screencoord = ... //given in pixel shader [0..1], if not normalized, see below screensize_ws = .. //screenwidth in world space, can contain the 1/screenwidth and 1/screenheigh in pixel if screencoord is not normalized near_ws = .. // near plane distance from center of projection far_ws = .. // far plane distance from center of projection depth = .. // depth [0..1] between center of projection and far plane // update screencoord screencoord.xy = screencoord.xy * 2.0 - 1.0 ; // ->[-1..0..1] position_vs.xy = (screencoord.xy * screensize_ws.xy * 0.5) * (far_ws*depth/near_ws); position_vs.z = far_ws*depth;
Note: you need to carefully integrate this into your engine. I don't know how your engine works, therefor try to understand of what I want to tell you before integrating it into the engine. You must most likely modify the code , 1:1 will not work all the time.
E.g. is your depth the normalized difference between near and far clip plane or the distance between center of projection and far ?
E.g. you negate the depth in your VS shader, do you consider this when doing the reconstruction ?