[Bf-blender-cvs] [8fae58ce0b6] master: Nodes: support Value node in simulation node tree

Jacques Lucke noreply at git.blender.org
Sat Jul 11 16:56:43 CEST 2020


Commit: 8fae58ce0b65a5c4787b59abbd0f6ba0dee79908
Author: Jacques Lucke
Date:   Sat Jul 11 16:39:17 2020 +0200
Branches: master
https://developer.blender.org/rB8fae58ce0b65a5c4787b59abbd0f6ba0dee79908

Nodes: support Value node in simulation node tree

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

M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/nodes/shader/nodes/node_shader_value.cc

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

diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 2dc6c6cd409..50c1a2e4e4e 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -484,6 +484,7 @@ simulation_node_categories = [
         NodeItem("SimulationNodeTime"),
         NodeItem("SimulationNodeParticleAttribute"),
         NodeItem("FunctionNodeGroupInstanceID"),
+        NodeItem("ShaderNodeValue"),
     ]),
     SimulationNodeCategory("SIM_EMITTERS", "Emitters", items=[
         NodeItem("SimulationNodeParticleMeshEmitter"),
diff --git a/source/blender/nodes/shader/nodes/node_shader_value.cc b/source/blender/nodes/shader/nodes/node_shader_value.cc
index c32e9e1d581..64701018d63 100644
--- a/source/blender/nodes/shader/nodes/node_shader_value.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_value.cc
@@ -39,13 +39,21 @@ static int gpu_shader_value(GPUMaterial *mat,
   return GPU_stack_link(mat, node, "set_value", in, out, link);
 }
 
+static void sh_node_value_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
+{
+  const bNodeSocket *bsocket = builder.dnode().output(0).bsocket();
+  const bNodeSocketValueFloat *value = (const bNodeSocketValueFloat *)bsocket->default_value;
+  builder.construct_and_set_matching_fn<blender::fn::CustomMF_Constant<float>>(value->value);
+}
+
 void register_node_type_sh_value(void)
 {
   static bNodeType ntype;
 
-  sh_node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, 0);
+  sh_fn_node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, 0);
   node_type_socket_templates(&ntype, NULL, sh_node_value_out);
   node_type_gpu(&ntype, gpu_shader_value);
+  ntype.expand_in_mf_network = sh_node_value_expand_in_mf_network;
 
   nodeRegisterType(&ntype);
 }



More information about the Bf-blender-cvs mailing list