Invert Color Cycles Node
as with the HSV node the OSL code is relying on the (yet to be implemented) autorename. Also the svm code could use mix (svm_lerp) instead: 32 . float3 color_inv = make_float3(1.0f, 1.0f, 1.0f) - color; 35 . . stack_store_float3(stack, out_color, svm_lerp(color_inv, color, factor)); I have a feeling that each node 'program' should have the least program as possible. I'll see with Brecht later. But overall I don't know if that's any fast. And apart from that I think we will need this kind of function to move to a library if multiple functions linked in are not a problem.
This commit is contained in:
@@ -130,6 +130,7 @@ CCL_NAMESPACE_END
|
||||
#include "svm_geometry.h"
|
||||
#include "svm_hsv.h"
|
||||
#include "svm_image.h"
|
||||
#include "svm_invert.h"
|
||||
#include "svm_light_path.h"
|
||||
#include "svm_magic.h"
|
||||
#include "svm_mapping.h"
|
||||
@@ -257,6 +258,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT
|
||||
case NODE_VALUE_V:
|
||||
svm_node_value_v(kg, sd, stack, node.y, &offset);
|
||||
break;
|
||||
case NODE_INVERT:
|
||||
svm_node_invert(sd, stack, node.y, node.z, node.w);
|
||||
break;
|
||||
case NODE_MIX:
|
||||
svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user