[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