diff options
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl b/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl index 9e0a07d9c94..de4c8cb59a6 100644 --- a/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl @@ -74,14 +74,15 @@ void main(void) vec4 tra_nor_in = texture(transmit_normal_tx, center_uv); vec4 tra_dat_in = texture(transmit_data_tx, center_uv); - if (tra_nor_in.x < 0.0) { - /* Refraction transmission case. */ + ClosureDiffuse diffuse = gbuffer_load_diffuse_data(tra_col_in, tra_nor_in, tra_dat_in); + + if (diffuse.sss_id <= 0u) { + /* Normal diffuse is already in combined pass. */ + /* Refraction also go into this case. */ out_combined = vec4(0.0); return; } - ClosureDiffuse diffuse = gbuffer_load_diffuse_data(tra_col_in, tra_nor_in, tra_dat_in); - float max_radius = max_v3(diffuse.sss_radius); float homcoord = ProjectionMatrix[2][3] * vP.z + ProjectionMatrix[3][3]; |