mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 12:43:34 +00:00
fix spot dir nan again (#7176)
# Objective fix error with shadow shader's spotlight direction calculation when direction.y ~= 0 fixes #7152 ## Solution same as #6167: in shadows.wgsl, clamp 1-x^2-z^2 to >= 0 so that we can safely sqrt it
This commit is contained in:
parent
008c156991
commit
0af8e1c211
1 changed files with 1 additions and 1 deletions
|
@ -49,7 +49,7 @@ fn fetch_spot_shadow(light_id: u32, frag_position: vec4<f32>, surface_normal: ve
|
|||
// construct the light view matrix
|
||||
var spot_dir = vec3<f32>((*light).light_custom_data.x, 0.0, (*light).light_custom_data.y);
|
||||
// reconstruct spot dir from x/z and y-direction flag
|
||||
spot_dir.y = sqrt(1.0 - spot_dir.x * spot_dir.x - spot_dir.z * spot_dir.z);
|
||||
spot_dir.y = sqrt(max(0.0, 1.0 - spot_dir.x * spot_dir.x - spot_dir.z * spot_dir.z));
|
||||
if (((*light).flags & POINT_LIGHT_FLAGS_SPOT_LIGHT_Y_NEGATIVE) != 0u) {
|
||||
spot_dir.y = -spot_dir.y;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue