[Bf-blender-cvs] [247f37f7652] master: Fix missing subsurface IOR/Anisotropy socket after refactor in c2ab47e

Brecht Van Lommel noreply at git.blender.org
Tue Nov 30 22:10:51 CET 2021


Commit: 247f37f7652c19e6cfbe0570fbefbed8115e173e
Author: Brecht Van Lommel
Date:   Tue Nov 30 22:05:42 2021 +0100
Branches: master
https://developer.blender.org/rB247f37f7652c19e6cfbe0570fbefbed8115e173e

Fix missing subsurface IOR/Anisotropy socket after refactor in c2ab47e

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

M	source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
M	source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c

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

diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
index 89b7164693f..b9f4106c79a 100644
--- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
+++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
@@ -169,17 +169,16 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat,
 
 static void node_shader_update_principled(bNodeTree *ntree, bNode *node)
 {
-  bNodeSocket *sock;
-  int distribution = node->custom1;
-  int sss_method = node->custom2;
+  const int distribution = node->custom1;
+  const int sss_method = node->custom2;
 
-  for (sock = node->inputs.first; sock; sock = sock->next) {
+  for (bNodeSocket *sock = node->inputs.first; sock; sock = sock->next) {
     if (STREQ(sock->name, "Transmission Roughness")) {
       nodeSetSocketAvailability(ntree, sock, distribution == SHD_GLOSSY_GGX);
     }
 
     if (STR_ELEM(sock->name, "Subsurface IOR", "Subsurface Anisotropy")) {
-      nodeSetSocketAvailability(ntree, sock, sss_method == SHD_SUBSURFACE_BURLEY);
+      nodeSetSocketAvailability(ntree, sock, sss_method != SHD_SUBSURFACE_BURLEY);
     }
   }
 }
diff --git a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
index e917858e0f2..85a4a6aa425 100644
--- a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
+++ b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
@@ -67,6 +67,17 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat,
       mat, node, "node_subsurface_scattering", in, out, GPU_constant(&node->sss_id));
 }
 
+static void node_shader_update_subsurface_scattering(bNodeTree *ntree, bNode *node)
+{
+  const int sss_method = node->custom1;
+
+  for (bNodeSocket *sock = node->inputs.first; sock; sock = sock->next) {
+    if (STR_ELEM(sock->name, "IOR", "Anisotropy")) {
+      nodeSetSocketAvailability(ntree, sock, sss_method != SHD_SUBSURFACE_BURLEY);
+    }
+  }
+}
+
 /* node type definition */
 void register_node_type_sh_subsurface_scattering(void)
 {
@@ -80,6 +91,7 @@ void register_node_type_sh_subsurface_scattering(void)
   node_type_init(&ntype, node_shader_init_subsurface_scattering);
   node_type_storage(&ntype, "", NULL, NULL);
   node_type_gpu(&ntype, node_shader_gpu_subsurface_scattering);
+  node_type_update(&ntype, node_shader_update_subsurface_scattering);
 
   nodeRegisterType(&ntype);
 }



More information about the Bf-blender-cvs mailing list