Commit: 7366283c0107a350ff9e6ed9d4699e0e1f74aef4
Author: Sergey Sharybin
Date:   Wed Dec 10 17:28:44 2014 +0500
Branches: master
https://developer.blender.org/rB7366283c0107a350ff9e6ed9d4699e0e1f74aef4

Fix T42818: Cycles SSS passes are incorrect for SSS size of 0

This was caused by some internal optimization which evaluated SSS with
size of zero as BSDF but used different ID so the evaluation result
didn't appear in regular diffuse pass.

This lead to situation when SSS data was nowhere stored if the
size was zero.

Now SSS with zero size and close-to-zero sizes will be handled in the
same way from the passes point of view.

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

M       intern/cycles/kernel/kernel_shader.h

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

diff --git a/intern/cycles/kernel/kernel_shader.h 
b/intern/cycles/kernel/kernel_shader.h
index db08c32..6508974 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -681,7 +681,7 @@ ccl_device float3 shader_bsdf_subsurface(KernelGlobals *kg, 
ShaderData *sd)
        for(int i = 0; i< sd->num_closure; i++) {
                ShaderClosure *sc = &sd->closure[i];
 
-               if(CLOSURE_IS_BSSRDF(sc->type))
+               if(CLOSURE_IS_BSSRDF(sc->type) || 
CLOSURE_IS_BSDF_BSSRDF(sc->type))
                        eval += sc->weight;
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to