[Bf-blender-cvs] [e57cbccbd5b] soc-2019-cycles-procedural: Refactor and clean up Map Range node.
OmarSquircleArt
noreply at git.blender.org
Mon Aug 5 13:27:36 CEST 2019
Commit: e57cbccbd5b57218ca22a7d6fc9211b87fe0aaca
Author: OmarSquircleArt
Date: Mon Aug 5 13:28:41 2019 +0200
Branches: soc-2019-cycles-procedural
https://developer.blender.org/rBe57cbccbd5b57218ca22a7d6fc9211b87fe0aaca
Refactor and clean up Map Range node.
===================================================================
M intern/cycles/kernel/shaders/node_map_range.osl
M intern/cycles/kernel/svm/svm_map_range.h
M intern/cycles/render/nodes.cpp
M intern/cycles/render/nodes.h
M source/blender/gpu/shaders/gpu_shader_material.glsl
M source/blender/nodes/CMakeLists.txt
R070 source/blender/nodes/shader/nodes/node_shader_mapRange.c source/blender/nodes/shader/nodes/node_shader_map_range.c
===================================================================
diff --git a/intern/cycles/kernel/shaders/node_map_range.osl b/intern/cycles/kernel/shaders/node_map_range.osl
index eba2e7fcaf3..5a753246875 100644
--- a/intern/cycles/kernel/shaders/node_map_range.osl
+++ b/intern/cycles/kernel/shaders/node_map_range.osl
@@ -16,13 +16,13 @@
#include "stdosl.h"
-shader node_map_range(float ValueIn = 0.0, float FromMin = 0.0, float FromMax = 1.0,
- float ToMin = 0.0, float ToMax = 1.0, output float ValueOut = 0.0)
+shader node_map_range(float Value = 1.0, float FromMin = 0.0, float FromMax = 1.0,
+ float ToMin = 0.0, float ToMax = 1.0, output float Result = 0.0)
{
if (FromMax != FromMin) {
- ValueOut = ToMin + ((ValueIn - FromMin) / (FromMax - FromMin)) * (ToMax - ToMin);
+ Result = ToMin + ((Value - FromMin) / (FromMax - FromMin)) * (ToMax - ToMin);
}
else {
- ValueOut = 0.0;
+ Result = 0.0;
}
}
diff --git a/intern/cycles/kernel/svm/svm_map_range.h b/intern/cycles/kernel/svm/svm_map_range.h
index c3e02fd53be..973a4badc45 100644
--- a/intern/cycles/kernel/svm/svm_map_range.h
+++ b/intern/cycles/kernel/svm/svm_map_range.h
@@ -34,14 +34,14 @@ ccl_device void svm_node_map_range(KernelGlobals *kg,
float toMin = stack_load_float(stack, node1.y);
float toMax = stack_load_float(stack, node1.z);
- float r;
+ float result;
if (fromMax != fromMin) {
- r = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
+ result = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
}
else {
- r = 0.0f;
+ result = 0.0f;
}
- stack_store_float(stack, node1.w, r);
+ stack_store_float(stack, node1.w, result);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index 8d99001049c..60abb97d669 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -5526,13 +5526,13 @@ NODE_DEFINE(MapRangeNode)
{
NodeType *type = NodeType::add("map_range", create, NodeType::SHADER);
- SOCKET_IN_FLOAT(valueIn, "Value", 0.0f);
+ SOCKET_IN_FLOAT(value, "Value", 1.0f);
SOCKET_IN_FLOAT(fromMin, "From Min", 0.0f);
SOCKET_IN_FLOAT(fromMax, "From Max", 1.0f);
SOCKET_IN_FLOAT(toMin, "To Min", 0.0f);
SOCKET_IN_FLOAT(toMax, "To Max", 1.0f);
- SOCKET_OUT_FLOAT(valueOut, "Value");
+ SOCKET_OUT_FLOAT(result, "Result");
return type;
}
@@ -5544,14 +5544,14 @@ MapRangeNode::MapRangeNode() : ShaderNode(node_type)
void MapRangeNode::constant_fold(const ConstantFolder &folder)
{
if (folder.all_inputs_constant()) {
- float r;
+ float result;
if (fromMax != fromMin) {
- r = toMin + ((valueIn - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
+ result = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
}
else {
- r = 0.0f;
+ result = 0.0f;
}
- folder.make_constant(r);
+ folder.make_constant(result);
}
}
@@ -5563,7 +5563,7 @@ void MapRangeNode::compile(SVMCompiler &compiler)
ShaderInput *toMin_in = input("To Min");
ShaderInput *toMax_in = input("To Max");
- ShaderOutput *value_out = output("Value");
+ ShaderOutput *result_out = output("Result");
int toMin_stack = compiler.stack_assign(toMin_in);
int toMax_stack = compiler.stack_assign(toMax_in);
@@ -5572,7 +5572,7 @@ void MapRangeNode::compile(SVMCompiler &compiler)
compiler.stack_assign(value_in),
compiler.stack_assign(fromMin_in),
compiler.stack_assign(fromMax_in));
- compiler.add_node(NODE_MAP_RANGE, toMin_stack, toMax_stack, compiler.stack_assign(value_out));
+ compiler.add_node(NODE_MAP_RANGE, toMin_stack, toMax_stack, compiler.stack_assign(result_out));
}
void MapRangeNode::compile(OSLCompiler &compiler)
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 93848e00f24..43eb259d903 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -1283,7 +1283,7 @@ class MapRangeNode : public ShaderNode {
{
return NODE_GROUP_LEVEL_3;
}
- float valueIn, fromMin, fromMax, toMin, toMax;
+ float value, fromMin, fromMax, toMin, toMax;
};
class ClampNode : public ShaderNode {
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 40ff0d65786..a9fc7eb0c9a 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -469,13 +469,13 @@ void squeeze(float val, float width, float center, out float outval)
}
void map_range(
- float value, float fromMin, float fromMax, float toMin, float toMax, out float outval)
+ float value, float fromMin, float fromMax, float toMin, float toMax, out float result)
{
if (fromMax != fromMin) {
- outval = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
+ result = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
}
else {
- outval = 0.0;
+ result = 0.0;
}
}
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 9c0130a4f72..e926772692b 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -203,7 +203,7 @@ set(SRC
shader/nodes/node_shader_vertex_color.c
shader/nodes/node_shader_valToRgb.c
shader/nodes/node_shader_value.c
- shader/nodes/node_shader_mapRange.c
+ shader/nodes/node_shader_map_range.c
shader/nodes/node_shader_clamp.c
shader/nodes/node_shader_vectMath.c
shader/nodes/node_shader_vectTransform.c
diff --git a/source/blender/nodes/shader/nodes/node_shader_mapRange.c b/source/blender/nodes/shader/nodes/node_shader_map_range.c
similarity index 70%
rename from source/blender/nodes/shader/nodes/node_shader_mapRange.c
rename to source/blender/nodes/shader/nodes/node_shader_map_range.c
index c3cb593bb3e..c9ead0afbe2 100644
--- a/source/blender/nodes/shader/nodes/node_shader_mapRange.c
+++ b/source/blender/nodes/shader/nodes/node_shader_map_range.c
@@ -33,33 +33,10 @@ static bNodeSocketTemplate sh_node_map_range_in[] = {
{-1, 0, ""},
};
static bNodeSocketTemplate sh_node_map_range_out[] = {
- {SOCK_FLOAT, 0, N_("Value")},
+ {SOCK_FLOAT, 0, N_("Result")},
{-1, 0, ""},
};
-static void node_shader_exec_map_range(void *UNUSED(data),
- int UNUSED(thread),
- bNode *UNUSED(node),
- bNodeExecData *UNUSED(execdata),
- bNodeStack **in,
- bNodeStack **out)
-{
- float value, fromMin, fromMax, toMin, toMax;
-
- nodestack_get_vec(&value, SOCK_FLOAT, in[0]);
- nodestack_get_vec(&fromMin, SOCK_FLOAT, in[1]);
- nodestack_get_vec(&fromMax, SOCK_FLOAT, in[2]);
- nodestack_get_vec(&toMin, SOCK_FLOAT, in[3]);
- nodestack_get_vec(&toMax, SOCK_FLOAT, in[4]);
-
- if (fromMax != fromMin) {
- out[0]->vec[0] = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
- }
- else {
- out[0]->vec[0] = 0.0f;
- }
-}
-
static int gpu_shader_map_range(GPUMaterial *mat,
bNode *node,
bNodeExecData *UNUSED(execdata),
@@ -76,7 +53,6 @@ void register_node_type_sh_map_range(void)
sh_node_type_base(&ntype, SH_NODE_MAP_RANGE, "Map Range", NODE_CLASS_CONVERTOR, 0);
node_type_socket_templates(&ntype, sh_node_map_range_in, sh_node_map_range_out);
- node_type_exec(&ntype, NULL, NULL, node_shader_exec_map_range);
node_type_gpu(&ntype, gpu_shader_map_range);
nodeRegisterType(&ntype);
More information about the Bf-blender-cvs
mailing list