[Bf-blender-cvs] [14bedf80cd5] blender2.8: Eevee: SSR: Make raymarch step bigger.

Clément Foucault noreply at git.blender.org
Mon Jul 24 15:55:39 CEST 2017


Commit: 14bedf80cd5ed29da70d6f90491d411fccd07ce4
Author: Clément Foucault
Date:   Wed Jul 19 14:19:03 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB14bedf80cd5ed29da70d6f90491d411fccd07ce4

Eevee: SSR: Make raymarch step bigger.

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

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 6f6ced3c668..d53c0a276e8 100644
--- a/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
@@ -80,7 +80,7 @@ float raycast(sampler2D depth_texture, vec3 ray_origin, vec3 ray_dir)
 	vec4 pqk = vec4(P0, Q0.z, k0);
 
 	/* Scale derivatives by the desired pixel stride */
-	vec4 dPQK = vec4(dP, dQ.z, dk) * 4.0;
+	vec4 dPQK = vec4(dP, dQ.z, dk) * 8.0;
 
 	/* We track the ray depth at +/- 1/2 pixel to treat pixels as clip-space solid
 	 * voxels. Because the depth at -1/2 for a given pixel will be the same as at
@@ -94,7 +94,7 @@ float raycast(sampler2D depth_texture, vec3 ray_origin, vec3 ray_dir)
 	float end = P1.x * step_sign;
 
 	bool hit = false;
-	float hitstep, refinestep, raw_depth, view_depth;
+	float hitstep, raw_depth, view_depth;
 	for (hitstep = 0.0; hitstep < MAX_STEP && !hit; hitstep++) {
 		/* Ray finished & no hit*/
 		if ((pqk.x * step_sign) > end) break;
@@ -122,9 +122,9 @@ float raycast(sampler2D depth_texture, vec3 ray_origin, vec3 ray_dir)
 		pqk -= dPQK;
 
 		/* And do a finer trace over this segment */
-		dPQK /= 4.0;
+		dPQK /= 16.0;
 
-		for (refinestep = 0.0; refinestep < 4.0; refinestep++) {
+		for (float refinestep = 0.0; refinestep < 16.0; refinestep++) {
 			/* step through current cell */
 			pqk += dPQK;
 
@@ -146,8 +146,8 @@ float raycast(sampler2D depth_texture, vec3 ray_origin, vec3 ray_dir)
 
 	/* Check if we are somewhere near the surface. */
 	/* TODO user threshold */
-	float threshold = 0.05 / pqk.w; /* In view space */
-	if (zmax < (view_depth - threshold)) {
+	float threshold = 0.1; /* In clip space */
+	if (zmax < view_depth - threshold) {
 		hit = false;
 	}




More information about the Bf-blender-cvs mailing list