[Bf-blender-cvs] [ac2dcea8e19] soc-2019-cycles-procedural: Refactor and clean up White Noise node.

OmarSquircleArt noreply at git.blender.org
Wed Aug 7 15:12:37 CEST 2019


Commit: ac2dcea8e1906e1fa24736270d0ea592775352d1
Author: OmarSquircleArt
Date:   Wed Aug 7 15:13:36 2019 +0200
Branches: soc-2019-cycles-procedural
https://developer.blender.org/rBac2dcea8e1906e1fa24736270d0ea592775352d1

Refactor and clean up White Noise node.

===================================================================

M	intern/cycles/kernel/shaders/node_white_noise_texture.osl
M	intern/cycles/kernel/svm/svm_white_noise.h
M	intern/cycles/render/nodes.cpp
M	source/blender/gpu/shaders/gpu_shader_material.glsl
M	source/blender/nodes/shader/nodes/node_shader_tex_white_noise.c

===================================================================

diff --git a/intern/cycles/kernel/shaders/node_white_noise_texture.osl b/intern/cycles/kernel/shaders/node_white_noise_texture.osl
index ce39a5a759e..19a7cd9191e 100644
--- a/intern/cycles/kernel/shaders/node_white_noise_texture.osl
+++ b/intern/cycles/kernel/shaders/node_white_noise_texture.osl
@@ -19,21 +19,21 @@
 shader node_white_noise_texture(string dimensions = "3D",
                                 point Vector = vector(0.0, 0.0, 0.0),
                                 float W = 0.0,
-                                output float Fac = 0.0)
+                                output float Value = 0.0)
 {
   if (dimensions == "1D") {
-    Fac = noise("hash", W);
+    Value = noise("hash", W);
   }
   else if (dimensions == "2D") {
-    Fac = noise("hash", Vector[0], Vector[1]);
+    Value = noise("hash", Vector[0], Vector[1]);
   }
   else if (dimensions == "3D") {
-    Fac = noise("hash", Vector);
+    Value = noise("hash", Vector);
   }
   else if (dimensions == "4D") {
-    Fac = noise("hash", Vector, W);
+    Value = noise("hash", Vector, W);
   }
   else {
-    Fac = 0.0;
+    warning("%s", "Unknown dimension!");
   }
 }
diff --git a/intern/cycles/kernel/svm/svm_white_noise.h b/intern/cycles/kernel/svm/svm_white_noise.h
index a9d79b206df..56823123366 100644
--- a/intern/cycles/kernel/svm/svm_white_noise.h
+++ b/intern/cycles/kernel/svm/svm_white_noise.h
@@ -20,33 +20,33 @@ ccl_device void svm_node_tex_white_noise(KernelGlobals *kg,
                                          ShaderData *sd,
                                          float *stack,
                                          uint dimensions,
-                                         uint vec_offset,
+                                         uint vector_offset,
                                          uint w_offset,
                                          int *offset)
 {
   uint4 node1 = read_node(kg, offset);
 
-  float3 vec = stack_load_float3(stack, vec_offset);
+  float3 vector = stack_load_float3(stack, vector_offset);
   float w = stack_load_float(stack, w_offset);
 
-  float r;
+  float value;
   switch (dimensions) {
     case 1:
-      r = hash_float_to_float(w);
+      value = hash_float_to_float(w);
       break;
     case 2:
-      r = hash_float2_to_float(make_float2(vec.x, vec.y));
+      value = hash_float2_to_float(make_float2(vector.x, vector.y));
       break;
     case 3:
-      r = hash_float3_to_float(vec);
+      value = hash_float3_to_float(vector);
       break;
     case 4:
-      r = hash_float4_to_float(make_float4(vec.x, vec.y, vec.z, w));
+      value = hash_float4_to_float(make_float4(vector.x, vector.y, vector.z, w));
       break;
     default:
-      r = 0.0f;
+      kernel_assert(0);
   }
-  stack_store_float(stack, node1.y, r);
+  stack_store_float(stack, node1.y, value);
 }
 
 CCL_NAMESPACE_END
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index e8fc74154d3..2e9859e2fb7 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -1159,7 +1159,7 @@ NODE_DEFINE(WhiteNoiseTextureNode)
   SOCKET_IN_POINT(vector, "Vector", make_float3(0.0f, 0.0f, 0.0f));
   SOCKET_IN_FLOAT(w, "W", 0.0f);
 
-  SOCKET_OUT_FLOAT(fac, "Fac");
+  SOCKET_OUT_FLOAT(value, "Value");
 
   return type;
 }
@@ -1172,13 +1172,13 @@ void WhiteNoiseTextureNode::compile(SVMCompiler &compiler)
 {
   ShaderInput *vector_in = input("Vector");
   ShaderInput *w_in = input("W");
-  ShaderOutput *fac_out = output("Fac");
+  ShaderOutput *value_out = output("Value");
 
   compiler.add_node(NODE_TEX_WHITE_NOISE,
                     dimensions,
                     compiler.stack_assign(vector_in),
                     compiler.stack_assign(w_in));
-  compiler.add_node(NODE_TEX_WHITE_NOISE, compiler.stack_assign(fac_out));
+  compiler.add_node(NODE_TEX_WHITE_NOISE, compiler.stack_assign(value_out));
 }
 
 void WhiteNoiseTextureNode::compile(OSLCompiler &compiler)
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 24ce244d1d4..b8716f1337c 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -1444,24 +1444,24 @@ vec3 hash_vec4_to_vec3(vec4 k)
 
 /* White Noise */
 
-void node_white_noise_1d(vec3 vector, float w, out float fac)
+void node_white_noise_1d(vec3 vector, float w, out float value)
 {
-  fac = hash_float_to_float(w);
+  value = hash_float_to_float(w);
 }
 
-void node_white_noise_2d(vec3 vector, float w, out float fac)
+void node_white_noise_2d(vec3 vector, float w, out float value)
 {
-  fac = hash_vec2_to_float(vector.xy);
+  value = hash_vec2_to_float(vector.xy);
 }
 
-void node_white_noise_3d(vec3 vector, float w, out float fac)
+void node_white_noise_3d(vec3 vector, float w, out float value)
 {
-  fac = hash_vec3_to_float(vector);
+  value = hash_vec3_to_float(vector);
 }
 
-void node_white_noise_4d(vec3 vector, float w, out float fac)
+void node_white_noise_4d(vec3 vector, float w, out float value)
 {
-  fac = hash_vec4_to_float(vec4(vector, w));
+  value = hash_vec4_to_float(vec4(vector, w));
 }
 
 float floorfrac(float x, out int i)
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.c b/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.c
index b86cf00165e..ec2047e2d2f 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.c
@@ -27,7 +27,7 @@ static bNodeSocketTemplate sh_node_tex_white_noise_in[] = {
     {-1, 0, ""}};
 
 static bNodeSocketTemplate sh_node_tex_white_noise_out[] = {
-    {SOCK_FLOAT, 0, N_("Fac"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+    {SOCK_FLOAT, 0, N_("Value")},
     {-1, 0, ""},
 };
 
@@ -44,10 +44,10 @@ static int gpu_shader_tex_white_noise(GPUMaterial *mat,
 {
   static const char *names[] = {
       "",
-      "white_noise_1D",
-      "white_noise_2D",
-      "white_noise_3D",
-      "white_noise_4D",
+      "node_white_noise_1d",
+      "node_white_noise_2d",
+      "node_white_noise_3d",
+      "node_white_noise_4d",
   };
 
   GPU_stack_link(mat, node, names[node->custom1], in, out);
@@ -56,11 +56,11 @@ static int gpu_shader_tex_white_noise(GPUMaterial *mat,
 
 static void node_shader_update_tex_white_noise(bNodeTree *UNUSED(ntree), bNode *node)
 {
-  bNodeSocket *inVecSock = BLI_findlink(&node->inputs, 0);
-  bNodeSocket *inWSock = BLI_findlink(&node->inputs, 1);
+  bNodeSocket *sockVector = nodeFindSocket(node, SOCK_IN, "Vector");
+  bNodeSocket *sockW = nodeFindSocket(node, SOCK_IN, "W");
 
-  nodeSetSocketAvailability(inVecSock, node->custom1 != 1);
-  nodeSetSocketAvailability(inWSock, node->custom1 == 1 || node->custom1 == 4);
+  nodeSetSocketAvailability(sockVector, node->custom1 != 1);
+  nodeSetSocketAvailability(sockW, node->custom1 == 1 || node->custom1 == 4);
 }
 
 void register_node_type_sh_tex_white_noise(void)
@@ -70,7 +70,6 @@ void register_node_type_sh_tex_white_noise(void)
   sh_node_type_base(&ntype, SH_NODE_TEX_WHITE_NOISE, "White Noise Texture", NODE_CLASS_TEXTURE, 0);
   node_type_socket_templates(&ntype, sh_node_tex_white_noise_in, sh_node_tex_white_noise_out);
   node_type_init(&ntype, node_shader_init_tex_white_noise);
-  node_type_storage(&ntype, "", NULL, NULL);
   node_type_gpu(&ntype, gpu_shader_tex_white_noise);
   node_type_update(&ntype, node_shader_update_tex_white_noise);



More information about the Bf-blender-cvs mailing list