diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-08-09 16:20:18 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-08-10 16:43:47 +0300 |
commit | 292f5ab7584d6e9ba54893eaafd70d9ee8d1c3ce (patch) | |
tree | 1e1a3180f5b5e939081513c3ae957e7e73702edd /source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl | |
parent | e0078cd953e67dcf12b9d48ec3625a33ff0d1a8c (diff) |
Eevee: Correct Mipmap texel alignment.
Since we are working with non power of 2 textures, the mipmap level UV does not line up perfectly.
This resulted in skewed filtering and bad sampling of the min/max depth buffer.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl index 855755adfe4..7afabfc5c3d 100644 --- a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl +++ b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl @@ -18,6 +18,8 @@ float sample_depth(vec2 uv, int index, float lod) return textureLod(planarDepth, vec3(uv, index), 0.0).r; } else { + /* Correct UVs for mipmaping mis-alignment */ + uv *= mipRatio[int(lod + 1.0)]; return textureLod(maxzBuffer, uv, lod).r; } } |