Fix Cycles bug in RR termination, probability should never be > 1.0.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Tue, 12 Sep 2017 00:27:02 +0000 (02:27 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Tue, 12 Sep 2017 10:43:26 +0000 (12:43 +0200)
This causes render differences in some scenes, for example fishy_cat
and pabellon scenes render brighter in a few spots. This is an old
bug, not due to recent RR changes.

intern/cycles/kernel/kernel_path_state.h

index b539224db31402aa0130cba02e97b7f4472920af..af208ff37f120e3fff76dc88aaa935e90e25dafd 100644 (file)
@@ -201,7 +201,7 @@ ccl_device_inline float path_state_continuation_probability(KernelGlobals *kg, c
 
        /* Probalistic termination: use sqrt() to roughly match typical view
         * transform and do path termination a bit later on average. */
-       return sqrtf(max3(fabs(throughput)));
+       return min(sqrtf(max3(fabs(throughput))), 1.0f);
 }
 
 /* TODO(DingTo): Find more meaningful name for this */