Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-09-24 02:25:21 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-09-25 21:14:42 +0300
commit98dd2a518be52b7f94c3a6f9345f19a0aebb2284 (patch)
tree263c9cbb4b466782b133030e796bfe8b67e9f06f /source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
parent00955d8d7a2e17ee86767e5f3703d6c20f2602b8 (diff)
Eevee: Fix SSR in orthographic view.
The problem was that orthographic views can have hit position that are negative. Thus we cannot encode the hit in the sign of the Z component. The workaround is to store the hit position in screenspace. But since we are using floating point render target, we are loosing quite a bit of precision. TODO: use RGBA16 instead of RGBA16F. But that means encoding the pdf value somehow.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl5
1 files changed, 2 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
index d0fc14f8a29..b9aacde264d 100644
--- a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
@@ -211,11 +211,10 @@ vec3 raycast(int index, vec3 ray_origin, vec3 ray_dir, float thickness, float ra
ray_time = max(0.001, min(ray_time, max_time - 1.5));
vec4 ss_ray = ss_start + ss_step * ray_time;
- vec3 hit_pos = get_view_space_from_depth(ss_ray.xy, ss_ray.z);
/* Tag Z if ray failed. */
- hit_pos.z *= (hit) ? 1.0 : -1.0;
- return hit_pos;
+ ss_ray.z *= (hit) ? 1.0 : -1.0;
+ return ss_ray.xyz;
}
float screen_border_mask(vec2 hit_co)