Fade last cascade in directional shadow, closes #9779

This commit is contained in:
Juan Linietsky 2017-08-22 12:17:20 -03:00
parent 8ad7139631
commit 294e912a84

View file

@ -1694,6 +1694,7 @@ FRAGMENT_SHADER_CODE
if (gl_FragCoord.w > shadow_split_offsets.w) {
vec3 pssm_coord;
float pssm_fade=0.0;
#ifdef LIGHT_USE_PSSM_BLEND
float pssm_blend;
@ -1751,6 +1752,7 @@ FRAGMENT_SHADER_CODE
} else {
highp vec4 splane=(shadow_matrix4 * vec4(vertex,1.0));
pssm_coord=splane.xyz/splane.w;
pssm_fade = smoothstep(shadow_split_offsets.z,shadow_split_offsets.w,gl_FragCoord.w);
#if defined(LIGHT_USE_PSSM_BLEND)
use_blend=false;
@ -1782,6 +1784,7 @@ FRAGMENT_SHADER_CODE
} else {
highp vec4 splane=(shadow_matrix2 * vec4(vertex,1.0));
pssm_coord=splane.xyz/splane.w;
pssm_fade = smoothstep(shadow_split_offsets.x,shadow_split_offsets.y,gl_FragCoord.w);
#if defined(LIGHT_USE_PSSM_BLEND)
use_blend=false;
@ -1818,7 +1821,7 @@ FRAGMENT_SHADER_CODE
}
#endif
light_attenuation=mix(shadow_color_contact.rgb,vec3(1.0),shadow);
light_attenuation=mix(mix(shadow_color_contact.rgb,vec3(1.0),shadow),vec3(1.0),pssm_fade);
}