Opengl novice here so sorry ahead of time! Just hoping to get some questions answered about sampling textures. I was messing around with rendering a scene to textures so that they could be used later. I then wanted to make a shader to view a depth texture by linearizing the depth values and then just bliting it on screen using a single quad. I can see that everything is being drawn into the texture correctly through gDEBugger (debugger.png) but am having some trouble sampling it .

First, to render the texture I output a single quad covering the screen. Then in vertex shader I multiply by modelviewproj matrix and save the xy value. My understanding is this should perfectly match the screen coordinates but when I check these values I am only getting the top right corner (output.png).

Second, I always seem to get values of 0 when sampling my texture. I can see in the debugger data view that (0,0) has a value of like ~.9997. However I sample it, I always seem to get 0s. It is a floating point texture with GL_DEPTH_ATTACHMENT.

Here's the fragment and vertex shader code (my graphics card doesn't have geometry shader):

ShadowVisualDataOutput ShadowVisualVertexMain(ShadowVisualDataInput vdi, uniform float4x4 modelViewProj) { ShadowVisualDataOutput ret; ret.projv = mul(modelViewProj, vdi.vertex); ret.saved = mul(modelViewProj, vdi.vertex).xy; return ret; } ShadowVisualDataPixelOutput ShadowVisualFragmentMain( ShadowVisualDataOutput pdi, uniform sampler2D depthTex, uniform float camNear, uniform float camFar) { ShadowVisualDataPixelOutput ret; if (pdi.saved.x < 0 || pdi.saved.x > 720) { ret.color = float4(0,0,1,1); return ret; } if (pdi.saved.y < 0 || pdi.saved.y > 480) { ret.color = float4(0,0,1,1); return ret; } float2 lookup = float2(0, 0); float depth = tex2D(depthTex, lookup).x; if (depth == 0.0f) { ret.color = float4(0,0,0,0); return ret; } ret.color = float4(1,1,1,1); return ret; }

Thanks for any help ahead of time