[Bf-blender-cvs] [4e251211229] principled-v2: Cleanup: Move Principled BSDF model selection to its own enum
Lukas Stockner
noreply at git.blender.org
Mon Jul 4 23:56:12 CEST 2022
Commit: 4e251211229b9249076f4b1be7e099928fd3a106
Author: Lukas Stockner
Date: Mon Jul 4 23:31:47 2022 +0200
Branches: principled-v2
https://developer.blender.org/rB4e251211229b9249076f4b1be7e099928fd3a106
Cleanup: Move Principled BSDF model selection to its own enum
Numerical values are the same as before, so compatiblity is not a concern.
===================================================================
M source/blender/blenloader/intern/versioning_280.c
M source/blender/makesdna/DNA_node_types.h
M source/blender/makesrna/intern/rna_nodetree.c
M source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 426008e887e..9fc6bf4242d 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1866,7 +1866,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
STREQ(node->idname, "ShaderNodeEeveeMetallic")) {
node->type = SH_NODE_BSDF_PRINCIPLED;
BLI_strncpy(node->idname, "ShaderNodeBsdfPrincipled", sizeof(node->idname));
- node->custom1 = SHD_GLOSSY_MULTI_GGX;
+ node->custom1 = SHD_PRINCIPLED_MULTI_GGX;
error |= NTREE_DOVERSION_TRANSPARENCY_EMISSION;
}
}
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 76d8207eead..49df30ce4a2 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -1509,6 +1509,11 @@ typedef struct NodeCombSepColor {
#define SHD_GLOSSY_ASHIKHMIN_SHIRLEY 3
#define SHD_GLOSSY_MULTI_GGX 4
+/* principled bsdf mode
+ * Note: GGX and MULTI_GGX must align with SHD_GLOSSY for backwards compatibility */
+#define SHD_PRINCIPLED_GGX 2
+#define SHD_PRINCIPLED_MULTI_GGX 4
+
/* vector transform */
#define SHD_VECT_TRANSFORM_TYPE_VECTOR 0
#define SHD_VECT_TRANSFORM_TYPE_POINT 1
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 386ef3f74a3..c1eb7004e9e 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -4662,13 +4662,8 @@ static EnumPropertyItem node_ies_mode_items[] = {
};
static const EnumPropertyItem node_principled_distribution_items[] = {
- {SHD_GLOSSY_GGX, "GGX", 0, "GGX", ""},
- {SHD_GLOSSY_MULTI_GGX,
- "MULTI_GGX",
- 0,
- "Multiscatter GGX",
- "Slower than GGX but gives a more energy conserving results, which would otherwise be "
- "visible as excessive darkening"},
+ {SHD_PRINCIPLED_GGX, "GGX", 0, "GGX", ""},
+ {SHD_PRINCIPLED_MULTI_GGX, "MULTI_GGX", 0, "Multiscatter GGX", ""},
{0, NULL, 0, NULL, NULL},
};
diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
index a63c7aede04..669f1d9663a 100644
--- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
+++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
@@ -115,7 +115,7 @@ static void node_shader_buts_principled(uiLayout *layout, bContext *UNUSED(C), P
static void node_shader_init_principled(bNodeTree *UNUSED(ntree), bNode *node)
{
- node->custom1 = SHD_GLOSSY_GGX;
+ node->custom1 = SHD_PRINCIPLED_GGX;
node->custom2 = SHD_SUBSURFACE_RANDOM_WALK;
}
@@ -175,7 +175,7 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat,
use_subsurf = GPU_material_sss_profile_create(mat, &socket_data->value[1]);
}
- float use_multi_scatter = (node->custom1 == SHD_GLOSSY_MULTI_GGX) ? 1.0f : 0.0f;
+ float use_multi_scatter = (node->custom1 != SHD_PRINCIPLED_GGX) ? 1.0f : 0.0f;
float use_sss = (use_subsurf) ? 1.0f : 0.0f;
float use_diffuse_f = (use_diffuse) ? 1.0f : 0.0f;
float use_clear_f = (use_clear) ? 1.0f : 0.0f;
@@ -202,7 +202,7 @@ static void node_shader_update_principled(bNodeTree *ntree, bNode *node)
LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) {
if (STREQ(sock->name, "Transmission Roughness")) {
- nodeSetSocketAvailability(ntree, sock, distribution == SHD_GLOSSY_GGX);
+ nodeSetSocketAvailability(ntree, sock, distribution == SHD_PRINCIPLED_GGX);
}
if (STR_ELEM(sock->name, "Subsurface IOR", "Subsurface Anisotropy")) {
More information about the Bf-blender-cvs
mailing list