[Bf-blender-cvs] [27137c479cc] blender-v2.91-release: EEVEE: Screen Space Reflection: Improve contact reflections

Clément Foucault noreply at git.blender.org
Wed Oct 21 22:56:44 CEST 2020


Commit: 27137c479cc309bbb72ed4e41d481cdcfb773716
Author: Clément Foucault
Date:   Wed Oct 21 22:51:23 2020 +0200
Branches: blender-v2.91-release
https://developer.blender.org/rB27137c479cc309bbb72ed4e41d481cdcfb773716

EEVEE: Screen Space Reflection: Improve contact reflections

This patch helps the case of intricate reflections where the
ray does not travel far before intersecting the geometry.

In these cases there could be false negative exclusion of the ray
caused by the backface rejection threshold.

===================================================================

M	source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl

===================================================================

diff --git a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
index 225bf9b07db..dbb5e660dab 100644
--- a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
@@ -235,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. */



More information about the Bf-blender-cvs mailing list