Fix contact shadow when light is outside of viewport.
This commit is contained in:
parent
78f1513928
commit
d7f9d71be2
@ -897,6 +897,7 @@ float contact_shadow_compute(vec3 pos, vec3 dir, float max_distance) {
|
|||||||
bias += incr * 2.0;
|
bias += incr * 2.0;
|
||||||
|
|
||||||
vec3 uv_depth = (source.xyz / source.w) * 0.5 + 0.5;
|
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;
|
float depth = texture(depth_buffer, uv_depth.xy).r;
|
||||||
|
|
||||||
if (depth < uv_depth.z) {
|
if (depth < uv_depth.z) {
|
||||||
@ -909,6 +910,9 @@ float contact_shadow_compute(vec3 pos, vec3 dir, float max_distance) {
|
|||||||
|
|
||||||
ratio += ratio_incr;
|
ratio += ratio_incr;
|
||||||
steps -= 1.0;
|
steps -= 1.0;
|
||||||
|
} else {
|
||||||
|
return 1.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1.0;
|
return 1.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user