Commit: 96138daa2bd4e82c7d326a5cfc2a6ba042a4a0dd Author: Clément Foucault Date: Tue Jan 16 22:18:35 2018 +0100 Branches: blender2.8 https://developer.blender.org/rB96138daa2bd4e82c7d326a5cfc2a6ba042a4a0dd
Eevee: SSR: Fix artifacts at object/background limits. This should have a very small perf impact but it's needed. =================================================================== M source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl =================================================================== diff --git a/source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl b/source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl index fef55d82e96..9043a4ca768 100644 --- a/source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl @@ -97,9 +97,14 @@ void main() float depth = texelFetch(depthBuffer, fullres_texel, 0).r; + /* Default: not hits. */ + hitData = encode_hit_data(vec2(0.5), false, false); + pdfData = 0.0; + /* Early out */ + /* We can't do discard because we don't clear the render target. */ if (depth == 1.0) - discard; + return; vec2 uvs = vec2(fullres_texel) / vec2(textureSize(depthBuffer, 0)); @@ -113,17 +118,15 @@ void main() /* Early out */ if (dot(speccol_roughness.rgb, vec3(1.0)) == 0.0) - discard; + return; float roughness = speccol_roughness.a; float roughnessSquared = max(1e-3, roughness * roughness); float a2 = roughnessSquared * roughnessSquared; - if (roughness > maxRoughness + 0.2) { - hitData = encode_hit_data(vec2(0.5), false, false); - pdfData = 0.0; + /* Early out */ + if (roughness > maxRoughness + 0.2) return; - } vec4 rand = texelFetch(utilTex, ivec3(halfres_texel % LUT_SIZE, 2), 0); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs