diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-03-26 17:21:43 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-03-26 17:21:43 +0400 |
commit | 53dab9ec69d8a583f458a47d3cdfdae06486ca17 (patch) | |
tree | b32ee9e8ff908556a2bc0643a7705fc16729b309 /intern/cycles/kernel/svm/svm_ramp.h | |
parent | d27a1a9acd3cc4e64334da9c872f3fe71f80a215 (diff) |
Cycles: fix for ColorRamp node alpha output.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_ramp.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_ramp.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/intern/cycles/kernel/svm/svm_ramp.h b/intern/cycles/kernel/svm/svm_ramp.h index 0654240c21b..55c2b3f6af4 100644 --- a/intern/cycles/kernel/svm/svm_ramp.h +++ b/intern/cycles/kernel/svm/svm_ramp.h @@ -40,11 +40,15 @@ __device void svm_node_rgb_ramp(KernelGlobals *kg, ShaderData *sd, float *stack, { uint fac_offset = node.y; uint color_offset = node.z; + uint alpha_offset = node.w; float fac = stack_load_float(stack, fac_offset); float4 color = rgb_ramp_lookup(kg, *offset, fac); - stack_store_float3(stack, color_offset, float4_to_float3(color)); + if(stack_valid(color_offset)) + stack_store_float3(stack, color_offset, float4_to_float3(color)); + if(stack_valid(alpha_offset)) + stack_store_float(stack, alpha_offset, color.w); *offset += RAMP_TABLE_SIZE; } |