diff options
author | Szymon Ulatowski <szulat> | 2020-07-13 18:02:19 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-07-13 18:08:58 +0300 |
commit | 29da019cb3532524f336ecd2c33c837dce6a3ef3 (patch) | |
tree | 282c8ef7de977498142e2c0e53fd518bed360d07 | |
parent | 16989c4d1d3283c316bbdb0486f02107647caeeb (diff) |
EEVEE: Fix sky zenith bug
Careless use of acos() in spherical coordinates transformation was
deteriorating the precision near zenith (and nadir) and producing
glitchy pixels (best seen in longer focal lengths).
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D8266
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_tex_sky.glsl | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_tex_sky.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_tex_sky.glsl index b2f6147b629..b6aad5904ff 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_tex_sky.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_tex_sky.glsl @@ -14,7 +14,7 @@ float sky_angle_between(float thetav, float phiv, float theta, float phi) vec3 sky_spherical_coordinates(vec3 dir) { - return vec3(acos(dir.z), atan(dir.x, dir.y), 0); + return vec3(M_PI_2 - atan(dir.z, length(dir.xy)), atan(dir.x, dir.y), 0); } /* Preetham */ |