Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.cc27
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);