Cleanup: Use new socket builder API
This commit converts most shader or bsdf nodes.
This commit is contained in:
parent
3ae664363d
commit
ed9b21098d
Notes:
blender-bot
2023-06-23 20:19:28 +02:00
Referenced by commit 533a5a6a8c
, Fix T99785: Make Principled Hair IOR input behave like other IOR sliders
Referenced by issue #99785, Principled hair BSDF IOR slider inconsistency
Referenced by issue #96207, Principled BSDF - Specular Tint default value at 0.5
Referenced by issue #108728, Rewrite some compositing nodes to using declarations
|
@ -21,22 +21,24 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_anisotropic_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_anisotropic_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Anisotropy"), 0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Rotation"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_anisotropic_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Roughness"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Anisotropy")).default_value(0.5f).min(-1.0f).max(1.0f);
|
||||
b.add_input<decl::Float>(N_("Rotation"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_input<decl::Vector>(N_("Tangent")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_anisotropic(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -76,8 +78,7 @@ void register_node_type_sh_bsdf_anisotropic()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Anisotropic BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_anisotropic_in, file_ns::sh_node_bsdf_anisotropic_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_anisotropic);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_anisotropic);
|
||||
|
|
|
@ -21,19 +21,17 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_diffuse_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_diffuse_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_diffuse_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -60,8 +58,7 @@ void register_node_type_sh_bsdf_diffuse()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_diffuse_in, file_ns::sh_node_bsdf_diffuse_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_diffuse);
|
||||
|
||||
|
|
|
@ -21,20 +21,18 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_glass_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_glass_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_glass_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_glass(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -78,8 +76,7 @@ void register_node_type_sh_bsdf_glass()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_glass_in, file_ns::sh_node_bsdf_glass_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_glass);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_glass);
|
||||
|
|
|
@ -21,19 +21,17 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_glossy_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_glossy_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_glossy_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Roughness"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_glossy(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -77,8 +75,7 @@ void register_node_type_sh_bsdf_glossy()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_glossy_in, file_ns::sh_node_bsdf_glossy_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_glossy);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_glossy);
|
||||
|
|
|
@ -21,21 +21,27 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_hair_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_hair_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Offset"), 0.0f, 0.0f, 0.0f, 0.0f, -M_PI_2, M_PI_2, PROP_ANGLE},
|
||||
{SOCK_FLOAT, N_("RoughnessU"), 0.1f, 0.1f, 0.1f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("RoughnessV"), 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_hair_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Offset"))
|
||||
.default_value(0.0f)
|
||||
.min(-M_PI_2)
|
||||
.max(M_PI_2)
|
||||
.subtype(PROP_ANGLE);
|
||||
b.add_input<decl::Float>(N_("RoughnessU"))
|
||||
.default_value(0.1f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("RoughnessV"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Tangent")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_hair(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -56,8 +62,7 @@ void register_node_type_sh_bsdf_hair()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_HAIR, "Hair BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_hair_in, file_ns::sh_node_bsdf_hair_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size(&ntype, 150, 60, 200);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_hair);
|
||||
|
||||
|
|
|
@ -21,38 +21,60 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_hair_principled_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
/* Color, melanin and absorption coefficient default to approximately same brownish hair. */
|
||||
static bNodeSocketTemplate sh_node_bsdf_hair_principled_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.017513f, 0.005763f, 0.002059f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Melanin"), 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Melanin Redness"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_RGBA, N_("Tint"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_VECTOR, N_("Absorption Coefficient"), 0.245531f, 0.52f, 1.365f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Radial Roughness"), 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Coat"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("IOR"), 1.55f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_FLOAT,
|
||||
N_("Offset"),
|
||||
2.0f * ((float)M_PI) / 180.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
-M_PI_2,
|
||||
M_PI_2,
|
||||
PROP_ANGLE},
|
||||
{SOCK_FLOAT, N_("Random Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Random Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Random"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_hair_principled_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({0.017513f, 0.005763f, 0.002059f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Melanin"))
|
||||
.default_value(0.8f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Melanin Redness"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Tint")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Vector>(N_("Absorption Coefficient"))
|
||||
.default_value({0.245531f, 0.52f, 1.365f})
|
||||
.min(0.0f)
|
||||
.max(1000.0f);
|
||||
b.add_input<decl::Float>(N_("Roughness"))
|
||||
.default_value(0.3f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Radial Roughness"))
|
||||
.default_value(0.3f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Coat"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("IOR")).default_value(1.55f).min(0.0f).max(1000.0f).subtype(
|
||||
PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Offset"))
|
||||
.default_value(2.0f * ((float)M_PI) / 180.0f)
|
||||
.min(-M_PI_2)
|
||||
.max(M_PI_2)
|
||||
.subtype(PROP_ANGLE);
|
||||
b.add_input<decl::Float>(N_("Random Color"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Random Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Random")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
/* Initialize the custom Parametrization property to Color. */
|
||||
static void node_shader_init_hair_principled(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
|
@ -103,8 +125,7 @@ void register_node_type_sh_bsdf_hair_principled()
|
|||
|
||||
sh_node_type_base(
|
||||
&ntype, SH_NODE_BSDF_HAIR_PRINCIPLED, "Principled Hair BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_hair_principled_in, file_ns::sh_node_bsdf_hair_principled_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_LARGE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_hair_principled);
|
||||
node_type_update(&ntype, file_ns::node_shader_update_hair_principled);
|
||||
|
|
|
@ -21,59 +21,103 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_principled_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_principled_in[] = {
|
||||
{SOCK_RGBA, N_("Base Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Subsurface"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR,
|
||||
N_("Subsurface Radius"),
|
||||
1.0f,
|
||||
0.2f,
|
||||
0.1f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
100.0f,
|
||||
PROP_NONE,
|
||||
SOCK_COMPACT},
|
||||
{SOCK_RGBA, N_("Subsurface Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Subsurface IOR"), 1.4f, 0.0f, 0.0f, 0.0f, 1.01f, 3.8f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Subsurface Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Metallic"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Specular"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Specular Tint"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Anisotropic"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Anisotropic Rotation"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Sheen"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Sheen Tint"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Clearcoat"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Clearcoat Roughness"), 0.03f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_FLOAT, N_("Transmission"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Transmission Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_RGBA, N_("Emission"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Emission Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f},
|
||||
{SOCK_FLOAT, N_("Alpha"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{SOCK_VECTOR,
|
||||
N_("Clearcoat Normal"),
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
1.0f,
|
||||
-1.0f,
|
||||
1.0f,
|
||||
PROP_NONE,
|
||||
SOCK_HIDE_VALUE},
|
||||
{SOCK_VECTOR, N_("Tangent"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_principled_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Base Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Subsurface"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Subsurface Radius"))
|
||||
.default_value({1.0f, 0.2f, 0.1f})
|
||||
.min(0.0f)
|
||||
.max(100.0f)
|
||||
.compact();
|
||||
b.add_input<decl::Color>(N_("Subsurface Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Subsurface IOR"))
|
||||
.default_value(1.4f)
|
||||
.min(1.01f)
|
||||
.max(3.8f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Subsurface Anisotropy"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Metallic"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Specular"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Specular Tint"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Roughness"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Anisotropic"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Anisotropic Rotation"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Sheen"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Sheen Tint"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Clearcoat"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Clearcoat Roughness"))
|
||||
.default_value(0.03f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Float>(N_("Transmission"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Transmission Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Emission")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Emission Strength")).default_value(1.0).min(0.0f).max(1000000.0f);
|
||||
b.add_input<decl::Float>(N_("Alpha"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_input<decl::Vector>(N_("Clearcoat Normal")).hide_value();
|
||||
b.add_input<decl::Vector>(N_("Tangent")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_principled(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -195,8 +239,7 @@ void register_node_type_sh_bsdf_principled()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_PRINCIPLED, "Principled BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_principled_in, file_ns::sh_node_bsdf_principled_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_LARGE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_principled);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_principled);
|
||||
|
|
|
@ -21,20 +21,18 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_refraction_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_refraction_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("IOR"), 1.45f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_refraction_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("IOR")).default_value(1.45f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_refraction(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -70,8 +68,7 @@ void register_node_type_sh_bsdf_refraction()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_REFRACTION, "Refraction BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_refraction_in, file_ns::sh_node_bsdf_refraction_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_refraction);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_refraction);
|
||||
|
|
|
@ -21,20 +21,22 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_toon_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_toon_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Size"), 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Smooth"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_toon_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Size"))
|
||||
.default_value(0.5f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Smooth"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_toon(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -61,8 +63,7 @@ void register_node_type_sh_bsdf_toon()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_TOON, "Toon BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_toon_in, file_ns::sh_node_bsdf_toon_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_toon);
|
||||
|
||||
|
|
|
@ -21,18 +21,12 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_translucent_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_translucent_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_translucent_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -59,8 +53,7 @@ void register_node_type_sh_bsdf_translucent()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_translucent_in, file_ns::sh_node_bsdf_translucent_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_translucent);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,17 +21,11 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_transparent_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_transparent_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_transparent_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -52,8 +46,7 @@ void register_node_type_sh_bsdf_transparent()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_transparent_in, file_ns::sh_node_bsdf_transparent_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_transparent);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,19 +21,17 @@
|
|||
|
||||
namespace blender::nodes::node_shader_bsdf_velvet_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_velvet_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Sigma"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_bsdf_velvet_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-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_("Sigma"))
|
||||
.default_value(1.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -60,8 +58,7 @@ void register_node_type_sh_bsdf_velvet()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_bsdf_velvet_in, file_ns::sh_node_bsdf_velvet_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_bsdf_velvet);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,44 +21,36 @@
|
|||
|
||||
namespace blender::nodes::node_shader_eevee_specular_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_eevee_specular_in[] = {
|
||||
{SOCK_RGBA, N_("Base Color"), 0.8f, 0.8f, 0.8f, 1.0f},
|
||||
{SOCK_RGBA, N_("Specular"), 0.03f, 0.03f, 0.03f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Roughness"), 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_RGBA, N_("Emissive Color"), 0.0f, 0.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Transparency"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{SOCK_FLOAT, N_("Clear Coat"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Clear Coat Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR,
|
||||
N_("Clear Coat Normal"),
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
1.0f,
|
||||
PROP_NONE,
|
||||
SOCK_HIDE_VALUE},
|
||||
{SOCK_FLOAT,
|
||||
N_("Ambient Occlusion"),
|
||||
1.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
1.0f,
|
||||
PROP_NONE,
|
||||
SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_eevee_specular_out[] = {
|
||||
{SOCK_SHADER, N_("BSDF")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Base Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
|
||||
b.add_input<decl::Color>(N_("Specular")).default_value({0.03f, 0.03f, 0.03f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Roughness"))
|
||||
.default_value(0.2f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Emissive Color")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Transparency"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_input<decl::Float>(N_("Clear Coat"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Clear Coat Roughness"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Clear Coat Normal")).hide_value();
|
||||
b.add_input<decl::Float>(N_("Ambient Occlusion")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSDF"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_eevee_specular(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -98,8 +90,7 @@ void register_node_type_sh_eevee_specular()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_EEVEE_SPECULAR, "Specular BSDF", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_eevee_specular_in, file_ns::sh_node_eevee_specular_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_eevee_specular);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,18 +21,12 @@
|
|||
|
||||
namespace blender::nodes::node_shader_emission_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_emission_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Strength"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_emission_out[] = {
|
||||
{SOCK_SHADER, N_("Emission")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Strength")).default_value(1.0f).min(0.0f).max(1000000.0f);
|
||||
b.add_output<decl::Shader>(N_("Emission"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_emission(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -53,7 +47,7 @@ void register_node_type_sh_emission()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(&ntype, file_ns::sh_node_emission_in, file_ns::sh_node_emission_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_emission);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,22 +21,25 @@
|
|||
|
||||
namespace blender::nodes::node_shader_subsurface_scattering_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_subsurface_scattering_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Scale"), 1.0, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_VECTOR, N_("Radius"), 1.0f, 0.2f, 0.1f, 0.0f, 0.0f, 100.0f, PROP_NONE, SOCK_COMPACT},
|
||||
{SOCK_FLOAT, N_("IOR"), 1.4f, 0.0f, 0.0f, 0.0f, 1.01f, 3.8f, PROP_FACTOR},
|
||||
{SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_VECTOR, N_("Normal"), 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_subsurface_scattering_out[] = {
|
||||
{SOCK_SHADER, N_("BSSRDF")},
|
||||
{-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_("Scale")).default_value(1.0f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Vector>(N_("Radius"))
|
||||
.default_value({1.0f, 0.2f, 0.1f})
|
||||
.min(0.0f)
|
||||
.max(100.0f)
|
||||
.compact();
|
||||
b.add_input<decl::Float>(N_("IOR")).default_value(1.4f).min(1.01f).max(3.8f).subtype(
|
||||
PROP_FACTOR);
|
||||
b.add_input<decl::Float>(N_("Anisotropy"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Vector>(N_("Normal")).hide_value();
|
||||
b.add_output<decl::Shader>(N_("BSSRDF"));
|
||||
}
|
||||
|
||||
static void node_shader_init_subsurface_scattering(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -91,9 +94,7 @@ void register_node_type_sh_subsurface_scattering()
|
|||
|
||||
sh_node_type_base(
|
||||
&ntype, SH_NODE_SUBSURFACE_SCATTERING, "Subsurface Scattering", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(&ntype,
|
||||
file_ns::sh_node_subsurface_scattering_in,
|
||||
file_ns::sh_node_subsurface_scattering_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_MIDDLE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_subsurface_scattering);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_subsurface_scattering);
|
||||
|
|
|
@ -21,18 +21,12 @@
|
|||
|
||||
namespace blender::nodes::node_shader_volume_absorption_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_volume_absorption_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},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_volume_absorption_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_output<decl::Shader>(N_("Volume"));
|
||||
}
|
||||
|
||||
static int node_shader_gpu_volume_absorption(GPUMaterial *mat,
|
||||
bNode *node,
|
||||
|
@ -53,8 +47,7 @@ void register_node_type_sh_volume_absorption()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_VOLUME_ABSORPTION, "Volume Absorption", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_volume_absorption_in, file_ns::sh_node_volume_absorption_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_absorption);
|
||||
|
||||
nodeRegisterType(&ntype);
|
||||
|
|
|
@ -21,28 +21,30 @@
|
|||
|
||||
namespace blender::nodes::node_shader_volume_principled_cc {
|
||||
|
||||
/* **************** OUTPUT ******************** */
|
||||
|
||||
static bNodeSocketTemplate sh_node_volume_principled_in[] = {
|
||||
{SOCK_RGBA, N_("Color"), 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_STRING, N_("Color Attribute"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Density"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f},
|
||||
{SOCK_STRING, N_("Density Attribute"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Anisotropy"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_RGBA, N_("Absorption Color"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Emission Strength"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1000.0f},
|
||||
{SOCK_RGBA, N_("Emission Color"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Blackbody Intensity"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
|
||||
{SOCK_RGBA, N_("Blackbody Tint"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
||||
{SOCK_FLOAT, N_("Temperature"), 1000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6500.0f},
|
||||
{SOCK_STRING, N_("Temperature Attribute"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
|
||||
{-1, ""},
|
||||
};
|
||||
|
||||
static bNodeSocketTemplate sh_node_volume_principled_out[] = {
|
||||
{SOCK_SHADER, N_("Volume")},
|
||||
{-1, ""},
|
||||
};
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.add_input<decl::Color>(N_("Color")).default_value({0.5f, 0.5f, 0.5f, 1.0f});
|
||||
b.add_input<decl::String>(N_("Color Attribute"));
|
||||
b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::String>(N_("Density Attribute"));
|
||||
b.add_input<decl::Float>(N_("Anisotropy"))
|
||||
.default_value(0.0f)
|
||||
.min(-1.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Absorption Color")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Emission Strength")).default_value(0.0f).min(0.0f).max(1000.0f);
|
||||
b.add_input<decl::Color>(N_("Emission Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Blackbody Intensity"))
|
||||
.default_value(0.0f)
|
||||
.min(0.0f)
|
||||
.max(1.0f)
|
||||
.subtype(PROP_FACTOR);
|
||||
b.add_input<decl::Color>(N_("Blackbody Tint")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
|
||||
b.add_input<decl::Float>(N_("Temperature")).default_value(1000.0f).min(0.0f).max(6500.0f);
|
||||
b.add_input<decl::String>(N_("Temperature Attribute"));
|
||||
b.add_output<decl::Shader>(N_("Volume"));
|
||||
}
|
||||
|
||||
static void node_shader_init_volume_principled(bNodeTree *UNUSED(ntree), bNode *node)
|
||||
{
|
||||
|
@ -138,8 +140,7 @@ void register_node_type_sh_volume_principled()
|
|||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_VOLUME_PRINCIPLED, "Principled Volume", NODE_CLASS_SHADER);
|
||||
node_type_socket_templates(
|
||||
&ntype, file_ns::sh_node_volume_principled_in, file_ns::sh_node_volume_principled_out);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_size_preset(&ntype, NODE_SIZE_LARGE);
|
||||
node_type_init(&ntype, file_ns::node_shader_init_volume_principled);
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_volume_principled);
|
||||
|
|
Loading…
Reference in New Issue