[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45176] trunk/blender/intern/cycles: Cycles: fix for ColorRamp node alpha output.
Brecht Van Lommel
brechtvanlommel at pandora.be
Mon Mar 26 15:21:44 CEST 2012
Revision: 45176
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45176
Author: blendix
Date: 2012-03-26 13:21:43 +0000 (Mon, 26 Mar 2012)
Log Message:
-----------
Cycles: fix for ColorRamp node alpha output.
Modified Paths:
--------------
trunk/blender/intern/cycles/kernel/svm/svm_ramp.h
trunk/blender/intern/cycles/render/nodes.cpp
Modified: trunk/blender/intern/cycles/kernel/svm/svm_ramp.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_ramp.h 2012-03-26 13:21:13 UTC (rev 45175)
+++ trunk/blender/intern/cycles/kernel/svm/svm_ramp.h 2012-03-26 13:21:43 UTC (rev 45176)
@@ -40,11 +40,15 @@
{
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;
}
Modified: trunk/blender/intern/cycles/render/nodes.cpp
===================================================================
--- trunk/blender/intern/cycles/render/nodes.cpp 2012-03-26 13:21:13 UTC (rev 45175)
+++ trunk/blender/intern/cycles/render/nodes.cpp 2012-03-26 13:21:43 UTC (rev 45176)
@@ -2388,17 +2388,22 @@
{
add_input("Fac", SHADER_SOCKET_FLOAT);
add_output("Color", SHADER_SOCKET_COLOR);
+ add_output("Alpha", SHADER_SOCKET_FLOAT);
}
void RGBRampNode::compile(SVMCompiler& compiler)
{
ShaderInput *fac_in = input("Fac");
ShaderOutput *color_out = output("Color");
+ ShaderOutput *alpha_out = output("Alpha");
compiler.stack_assign(fac_in);
- compiler.stack_assign(color_out);
+ if(!color_out->links.empty())
+ compiler.stack_assign(color_out);
+ if(!alpha_out->links.empty())
+ compiler.stack_assign(alpha_out);
- compiler.add_node(NODE_RGB_RAMP, fac_in->stack_offset, color_out->stack_offset);
+ compiler.add_node(NODE_RGB_RAMP, fac_in->stack_offset, color_out->stack_offset, alpha_out->stack_offset);
compiler.add_array(ramp, RAMP_TABLE_SIZE);
}
More information about the Bf-blender-cvs
mailing list