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>2020-10-21 23:57:15 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-10-21 23:57:15 +0300
commit8a22b769883aca2c2fb7fc57daf33f062f752be6 (patch)
treee4e95deb2fc483a453c658696d55ea371ced0089
parentd7e3b3aed0a7cc9bce9df02e1a274708bfaa3dc5 (diff)
parent27137c479cc309bbb72ed4e41d481cdcfb773716 (diff)
Merge branch 'blender-v2.91-release' into master
-rw-r--r--source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
index cad1346609a..dbb5e660dab 100644
--- a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
@@ -173,7 +173,8 @@ vec3 raycast(int index,
float iter;
for (iter = 1.0; !hit && (ray_time < max_time) && (iter < MAX_STEP); iter++) {
/* Minimum stride of 2 because we are using half res minmax zbuffer. */
- float stride = max(1.0, iter * trace_quality) * 2.0;
+ /* WORKAROUND: Factor is a bit higher than 2 to avoid some banding. To investigate. */
+ float stride = max(1.0, iter * trace_quality) * (2.0 + 0.05);
float lod = log2(stride * 0.5 * trace_quality) * lod_fac;
ray_time += stride;
@@ -234,9 +235,10 @@ vec3 raycast(int index,
#endif
}
- if (discard_backface) {
- /* Discard backface hits */
- hit = hit && (prev_delta > 0.0);
+ /* Discard backface hits. Only do this if the ray traveled enough to avoid loosing intricate
+ * contact reflections. This is only used for SSReflections. */
+ if (discard_backface && prev_delta < 0.0 && curr_time > 4.1) {
+ hit = false;
}
/* Reject hit if background. */