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-07-19 15:19:03 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-07-19 15:19:03 +0300
commitf3fdc1f4e2e3a49f59b474f1bfc551761d661666 (patch)
treec1f241d74dbc09d6a5a27ee0c747e318c86e7816
parent644522da0126dc48b6a09bc4c351e22c39586fed (diff)
Eevee: SSR: Make raymarch step bigger.
-rw-r--r--source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl12
1 files changed, 6 insertions, 6 deletions
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;
}