diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-07-06 17:01:21 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-07-06 17:01:21 +0300 |
commit | d02711ed883ee0d1844d49d39a8814aca5b029c3 (patch) | |
tree | af023cd163cf3b7964e4759aab4ec77fd4f76665 /source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl | |
parent | c217d518efe5f5eeb709229e2832d9d2dfde7c30 (diff) |
Eevee: Fix the NaN pixel issue.
It's cause by degenerate triangle having normals set to (0,0,0) which may not be compressed like it should.
This fix the problem in the final indirect lighting evaluation which might be costly.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl b/source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl index 95e7af41398..53352244f3d 100644 --- a/source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl +++ b/source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl @@ -116,9 +116,9 @@ vec3 hl2_basis(vec3 N, vec3 cubesides[3]) vec3 n_squared = N * N; - irradiance += n_squared.x * cubesides[0]; - irradiance += n_squared.y * cubesides[1]; - irradiance += n_squared.z * cubesides[2]; + irradiance += max(1e-8, n_squared.x) * cubesides[0]; + irradiance += max(1e-8, n_squared.y) * cubesides[1]; + irradiance += max(1e-8, n_squared.z) * cubesides[2]; return irradiance; } |