diff options
Diffstat (limited to 'source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc index e07087e8529..abd10cfcbcf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc @@ -21,19 +21,17 @@ namespace blender::nodes::node_shader_volume_scatter_cc { -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_volume_scatter_in[] = { - {SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - {SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - {SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_FACTOR}, - {-1, ""}, -}; - -static bNodeSocketTemplate sh_node_volume_scatter_out[] = { - {SOCK_SHADER, N_("Volume")}, - {-1, ""}, -}; +static void node_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Color>(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); + b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); + b.add_input<decl::Float>(N_("Anisotropy")) + .default_value(0.0f) + .min(-1.0f) + .max(1.0f) + .subtype(PROP_FACTOR); + b.add_output<decl::Shader>(N_("Volume")); +} static int node_shader_gpu_volume_scatter(GPUMaterial *mat, bNode *node, @@ -54,8 +52,7 @@ void register_node_type_sh_volume_scatter() static bNodeType ntype; sh_node_type_base(&ntype, SH_NODE_VOLUME_SCATTER, "Volume Scatter", NODE_CLASS_SHADER); - node_type_socket_templates( - &ntype, file_ns::sh_node_volume_scatter_in, file_ns::sh_node_volume_scatter_out); + ntype.declare = file_ns::node_declare; node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_scatter); nodeRegisterType(&ntype); |