[Bf-blender-cvs] [31fba57677a] master: Fix T60802 Eevee: No diffuse when using Clearcoat + Add shader

Clément Foucault noreply at git.blender.org
Tue Mar 12 23:16:30 CET 2019


Commit: 31fba57677aec38842809b22f25a0484cbff691b
Author: Clément Foucault
Date:   Tue Mar 12 22:32:13 2019 +0100
Branches: master
https://developer.blender.org/rB31fba57677aec38842809b22f25a0484cbff691b

Fix T60802 Eevee: No diffuse when using Clearcoat + Add shader

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

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

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

diff --git a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
index 3155c6bef4c..ade19f4c7a8 100644
--- a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
@@ -783,14 +783,16 @@ Closure closure_mix(Closure cl1, Closure cl2, float fac)
 Closure closure_add(Closure cl1, Closure cl2)
 {
 	Closure cl = (cl1.ssr_id == outputSsrId) ? cl1 : cl2;
+	cl.radiance = cl1.radiance + cl2.radiance;
 #  ifdef USE_SSS
 	cl.sss_data = (cl1.sss_data.a > 0.0) ? cl1.sss_data : cl2.sss_data;
+	/* Add radiance that was supposed to be filtered but was rejected. */
+	cl.radiance += (cl1.sss_data.a > 0.0) ? cl2.sss_data.rgb : cl1.sss_data.rgb;
 #    ifdef USE_SSS_ALBEDO
 	/* TODO Find a solution to this. Dither? */
 	cl.sss_albedo = (cl1.sss_data.a > 0.0) ? cl1.sss_albedo : cl2.sss_albedo;
 #    endif
 #  endif
-	cl.radiance = cl1.radiance + cl2.radiance;
 	cl.opacity = saturate(cl1.opacity + cl2.opacity);
 	return cl;
 }



More information about the Bf-blender-cvs mailing list