From 165a2da753248384787ea3509a031d8867d4587e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sat, 13 Mar 2021 16:58:44 +0100 Subject: [PATCH] EEVEE: Fix wrong sss component being affected by alpha This fixes NaNs / blown up values when using alpha-hashed transparency or alpha clip with SSS. --- source/blender/draw/engines/eevee/shaders/surface_frag.glsl | 2 +- .../gpu/shaders/material/gpu_shader_material_principled.glsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/draw/engines/eevee/shaders/surface_frag.glsl b/source/blender/draw/engines/eevee/shaders/surface_frag.glsl index 62930b9944a..889bf439d5f 100644 --- a/source/blender/draw/engines/eevee/shaders/surface_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/surface_frag.glsl @@ -79,7 +79,7 @@ void main() #endif #ifndef USE_ALPHA_BLEND - float alpha_div = 1.0 / max(1e-8, alpha); + float alpha_div = safe_rcp(alpha); outRadiance.rgb *= alpha_div; ssrData.rgb *= alpha_div; # ifdef USE_SSS diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl index 49c8973a8ce..2e0515e324e 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl @@ -193,7 +193,7 @@ void node_bsdf_principled(vec4 base_color, result.radiance *= alpha; result.ssr_data.rgb *= alpha; # ifdef USE_SSS - result.sss_irradiance *= alpha; + result.sss_albedo *= alpha; # endif }