fix spot dir nan bug (#6167)
# Objective fix error with pbr shader's spotlight direction calculation when direction.y ~= 0 ## Solution in pbr_lighting.wgsl, clamp `1-x^2-z^2` to `>= 0` so that we can safely `sqrt` it
This commit is contained in:
parent
8a268129f9
commit
29098b7a11
@ -248,7 +248,7 @@ fn spot_light(
|
||||
|
||||
// reconstruct spot dir from x/z and y-direction flag
|
||||
var spot_dir = vec3<f32>(light.light_custom_data.x, 0.0, light.light_custom_data.y);
|
||||
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 New Issue
Block a user