From 233f27a7e17c71d89efbcdf49f744639b20fc613 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 14 May 2011 13:23:15 +0000 Subject: [PATCH] Cycles: fix chained mix/add closures nodes not working. --- intern/cycles/kernel/svm/svm_closure.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 58a916029f4..a7462e2c358 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -183,10 +183,10 @@ __device void svm_node_mix_closure(ShaderData *sd, float *stack, offset from the current node, so we jump */ if(*randb < weight) { *offset += node_jump; - *randb = (*randb - weight)/(1.0f - weight); + *randb = *randb/weight; } else - *randb = *randb/weight; + *randb = (*randb - weight)/(1.0f - weight); } __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, @@ -199,10 +199,10 @@ __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, of the two closures being added */ if(*randb < weight) { *offset += node_jump; - *randb = (*randb - weight)/(1.0f - weight); + *randb = *randb/weight; } else - *randb = *randb/weight; + *randb = (*randb - weight)/(1.0f - weight); *closure_weight *= 2.0f; }