I'm writing shadow mapping in deferred shading.
Here is my depth map for directional light (orthogonal projection):
Below is my full-screen quad shader to render pixel's depth in light view space:
#version 330
in vec2 texCoord;
out vec3 fragColor;
uniform mat4 lightViewProjMat; // lightView * lightProj
uniform sampler2D sceneTexture;
uniform sampler2D shadowMapTexture;
uniform sampler2D scenePosTexture;
void main() {
vec4 fragPos = texture(scenePosTexture, texCoord);
vec4 fragPosLightSpace = lightViewProjMat * fragPos;
vec3 coord = fragPosLightSpace.xyz / fragPosLightSpace.w;
coord = coord * 0.5 + 0.5;
float lightViewDepth = texture(shadowMapTexture, coord.xy).x;
fragColor = vec3(lightViewDepth);
}
Render size is 1280x720, depth map's size is 512x512 and look like it is repeating the depth map in my scene. I think my projection for coord isn't right. I want to see if the depth from pixel to light is correct. Could someone give me some suggestions?
Solved myself, the problem is depth saving. I saved wrong depth value, should have used
gl_FragCoord.z
instead.