Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 1 of 1

Thread: Deferred spotlight shadowmapping, weird artifacts.

  1. #1
    Junior Member Newbie
    Join Date
    Nov 2011
    Posts
    3

    Exclamation Deferred spotlight shadowmapping, weird artifacts.

    Been working on implementing simple shadowmaps, but I've came across some weird issues. I've been at this issue for almost a week now (a few hours here and there) and cant figure it out

    This is the relevant shader code: http://pastebin.com/1M6VSHLT
    Code :
    /* 'viewPosition' is saved in GBuffer and written as ViewMatrix * ModelMatrix * VertexPosition
     * 'linearViewDepth' is saved in GBuffer and written as LinearizeDepth(gl_FragCoord.z, nearclip, farclip)
     * 'uniform_shadowmap' is a texturesampler for the shadow depth map
     * 'uniform_snearclip' and 'uniform_sfarclip' are the near and far clip planes for the shadowmaps projection
     * 'uniform_invViewMatrix' is the inverse of ViewMatrix
     * 'uniform_lightViewProjMatrix' is the viewprojection matrix for the spotlight "camera"
     */
     
    float LinearizeDepth(float depth, float near, float far)
    {
      float z = depth * 2.0 - 1.0;
      return (2.0 * near * far) / (far + near - z * (far - near));
    }
     
    void checkShadow(vec3 viewPosition, float linearViewDepth)
    {
     
      vec4 worldPosition = uniform_invViewMatrix * vec4(viewPosition, 1);
      vec4 lightPosition = uniform_lightViewProjMatrix * worldPosition;
      lightPosition.xyz /= lightPosition.w;
      vec2 shadowUV = lightPosition.xy * vec2(0.5) + vec2(0.5);
      float linearShadowDepth = LinearizeDepth(texture(uniform_shadowmap, shadowUV).r, uniform_snearclip, uniform_sfarclip);
      if (linearShadowDepth < linearViewDepth)
       discard;
    }


    EDIT: BETTER VIDEO HERE: https://www.youtube.com/watch?v=ZtUMR5xXOK0
    More descriptive with annotations, a visible spotlight frustum, and lower shadowmap resolution for clearer results.

    Old video: https://www.youtube.com/watch?v=6tzDSY1NSGE

    Any help, tips and/or recommendations are highly appreciated!
    Last edited by haikarainen; 11-30-2015 at 03:33 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •