[Bf-blender-cvs] [a2cc855dbac] master: Fix T68736 EEVEE: Loose subsurface node breaks shader
Clément Foucault
noreply at git.blender.org
Tue Sep 24 16:11:56 CEST 2019
Commit: a2cc855dbac955e8ec111a434c2d215eb161c064
Author: Clément Foucault
Date: Tue Sep 24 16:11:43 2019 +0200
Branches: master
https://developer.blender.org/rBa2cc855dbac955e8ec111a434c2d215eb161c064
Fix T68736 EEVEE: Loose subsurface node breaks shader
===================================================================
M source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
===================================================================
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 9a0a132b311..9f93dfd837b 100644
--- a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
+++ b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
@@ -61,8 +61,6 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat,
GPU_link(mat, "world_normals_get", &in[5].link);
}
- GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_SSS);
-
if (node->sss_id > 0) {
bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2);
bNodeSocketValueRGBA *socket_data = socket->default_value;
@@ -71,6 +69,10 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat,
/* For some reason it seems that the socket value is in ARGB format. */
GPU_material_sss_profile_create(
mat, &socket_data->value[1], &node->original->custom1, &socket_data_sharp->value);
+
+ /* sss_id is 0 only the node is not connected to any output.
+ * In this case flagging the material would trigger a bug (see T68736). */
+ GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE | GPU_MATFLAG_SSS);
}
return GPU_stack_link(
More information about the Bf-blender-cvs
mailing list