]> git.tdb.fi Git - libs/gl.git/commitdiff
Clamp depth reference for shadows to 1.0
authorMikko Rasa <tdb@tdb.fi>
Tue, 14 Dec 2021 14:23:34 +0000 (16:23 +0200)
committerMikko Rasa <tdb@tdb.fi>
Tue, 14 Dec 2021 14:23:34 +0000 (16:23 +0200)
This makes objects which are "behind" the shadow map volume sample the
shadow map correctly and not treat the clear value as a shadow caster.

shaderlib/shadow.glsl

index d6e2b385f8955009abf737d998fbe7dd984f8996..2e8a05b0889ab77464cc45e4324cc1e231c222d0 100644 (file)
@@ -52,7 +52,7 @@ virtual float get_shadow_factor(int index, vec4 world_pos)
                        return 1.0;
 
                vec4 region = shadows[index].region;
-               float shadow_sample = texture(shadow_map, vec3(shadow_coord.xy*region.zw+region.xy, shadow_coord.z));
+               float shadow_sample = texture(shadow_map, vec3(shadow_coord.xy*region.zw+region.xy, min(shadow_coord.z, 1.0)));
                return mix(1.0, shadow_sample, shadows[index].darkness);
        }
        else