[Bf-blender-cvs] [29f4a8510cf] master: Cycles: Fix random noise pattern seen with multiscatter bsdf and split kernel

Mai Lavelle noreply at git.blender.org
Fri May 19 03:40:00 CEST 2017


Commit: 29f4a8510cf4c555e7f1658e928636f38f4f84db
Author: Mai Lavelle
Date:   Thu May 18 21:14:31 2017 -0400
Branches: master
https://developer.blender.org/rB29f4a8510cf4c555e7f1658e928636f38f4f84db

Cycles: Fix random noise pattern seen with multiscatter bsdf and split kernel

Differentials were unset if roughness was low giving undefined behavior.

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

M	intern/cycles/kernel/closure/bsdf_microfacet_multi.h

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

diff --git a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
index ec0c9823445..b07b515c405 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
@@ -406,6 +406,10 @@ ccl_device int bsdf_microfacet_multi_ggx_sample(KernelGlobals *kg, const ShaderC
 		*omega_in = 2*dot(Z, I)*Z - I;
 		*pdf = 1e6f;
 		*eval = make_float3(1e6f, 1e6f, 1e6f);
+#ifdef __RAY_DIFFERENTIALS__
+		*domega_in_dx = (2 * dot(Z, dIdx)) * Z - dIdx;
+		*domega_in_dy = (2 * dot(Z, dIdy)) * Z - dIdy;
+#endif
 		return LABEL_REFLECT|LABEL_SINGULAR;
 	}




More information about the Bf-blender-cvs mailing list