[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