diff options
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c | 12 | ||||
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c | 2 |
2 files changed, 7 insertions, 7 deletions
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 741e792da87..595ddf27d0a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c @@ -132,8 +132,13 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat, &in[21].link); } + bool use_diffuse = socket_not_one(4) && socket_not_one(15); + bool use_subsurf = socket_not_zero(1) && use_diffuse && node->sss_id > 0; + bool use_refract = socket_not_one(4) && socket_not_zero(15); + bool use_clear = socket_not_zero(12); + /* SSS Profile */ - if (node->sss_id == 1) { + if (use_subsurf) { static short profile = SHD_SUBSURFACE_BURLEY; bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2); bNodeSocketValueRGBA *socket_data = socket->default_value; @@ -148,11 +153,6 @@ static int node_shader_gpu_bsdf_principled(GPUMaterial *mat, GPU_link(mat, "set_rgb_one", &sss_scale); } - bool use_diffuse = socket_not_one(4) && socket_not_one(15); - bool use_subsurf = socket_not_zero(1) && use_diffuse && node->sss_id == 1; - bool use_refract = socket_not_one(4) && socket_not_zero(15); - bool use_clear = socket_not_zero(12); - /* Due to the manual effort done per config, we only optimize the most common permutations. */ char *node_name; uint flag = 0; 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 21e07ece7b9..9a0a132b311 100644 --- a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c +++ b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c @@ -63,7 +63,7 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat, GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_SSS); - if (node->sss_id == 1) { + if (node->sss_id > 0) { bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2); bNodeSocketValueRGBA *socket_data = socket->default_value; bNodeSocket *socket_sharp = BLI_findlink(&node->original->inputs, 3); |