diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-04-20 11:59:07 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-04-20 11:59:07 +0300 |
commit | 27cfc1ea11461ca1257657afafb455be0da75cb1 (patch) | |
tree | 9a641bfce6ac6cd751ef1848abf3637837953456 /source/blender/draw/intern | |
parent | db0b1cab1f8c2798d5f088b98f4055987a19796e (diff) |
Fix T87541 EEVEE: AO causes black outline around objects and NaN pixels
It seems the pow result is unstable on some implementations.
Also avoid undefined behavior by clamping aoFactor to strict positive values.
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r-- | source/blender/draw/intern/shaders/common_math_lib.glsl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/draw/intern/shaders/common_math_lib.glsl b/source/blender/draw/intern/shaders/common_math_lib.glsl index 0344b977139..378f27056fa 100644 --- a/source/blender/draw/intern/shaders/common_math_lib.glsl +++ b/source/blender/draw/intern/shaders/common_math_lib.glsl @@ -91,6 +91,8 @@ vec2 sqr(vec2 a) { return a * a; } vec3 sqr(vec3 a) { return a * a; } vec4 sqr(vec4 a) { return a * a; } +float pow8(float x) { return sqr(sqr(sqr(x))); } + float len_squared(vec3 a) { return dot(a, a); } float len_squared(vec2 a) { return dot(a, a); } |