Merge pull request #34519 from MadEqua/fix-contact-shadows

Fix contact shadow when light is outside of viewport.
This commit is contained in:
Rémi Verschelde 2019-12-21 23:30:55 +01:00 committed by GitHub
commit 34ddb7ac59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -897,6 +897,7 @@ float contact_shadow_compute(vec3 pos, vec3 dir, float max_distance) {
bias += incr * 2.0;
vec3 uv_depth = (source.xyz / source.w) * 0.5 + 0.5;
if (uv_depth.x > 0.0 && uv_depth.x < 1.0 && uv_depth.y > 0.0 && uv_depth.y < 1.0) {
float depth = texture(depth_buffer, uv_depth.xy).r;
if (depth < uv_depth.z) {
@ -909,6 +910,9 @@ float contact_shadow_compute(vec3 pos, vec3 dir, float max_distance) {
ratio += ratio_incr;
steps -= 1.0;
} else {
return 1.0;
}
}
return 1.0;