diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-13 16:11:08 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-13 16:11:08 +0400 |
commit | 216602fe4b90c635cd1993aa1c1a9d866b6ae2cd (patch) | |
tree | 70b676fe831dbc3ec8084fb082c1790125d9f87f /intern/cycles/kernel/svm/svm_closure.h | |
parent | f48fbd3f68ea7751583f258a6e8e1bf1fe945fc7 (diff) |
Cycles: fix BSDF closure inputs ignoring links.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_closure.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_closure.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index fe9edc36e95..58a916029f4 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -20,10 +20,13 @@ CCL_NAMESPACE_BEGIN /* Closure Nodes */ -__device void svm_node_closure_bsdf(ShaderData *sd, uint type, int iparam1, int iparam2, float randb) +__device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, float randb) { - float param1 = __int_as_float(iparam1); - float param2 = __int_as_float(iparam2); + uint type, param1_offset, param2_offset; + decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, NULL); + + float param1 = (stack_valid(param1_offset))? stack_load_float(stack, param1_offset): __int_as_float(node.z); + float param2 = (stack_valid(param2_offset))? stack_load_float(stack, param2_offset): __int_as_float(node.w); switch(type) { case CLOSURE_BSDF_DIFFUSE_ID: |