diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-03-13 18:58:44 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-03-13 22:59:20 +0300 |
commit | 165a2da753248384787ea3509a031d8867d4587e (patch) | |
tree | d46c50811099efb6a12c222f8e17ce2d8c11d483 /source | |
parent | 267a9e14f5a7cda16309937b5b8fba700f8c833b (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/surface_frag.glsl | 2 | ||||
-rw-r--r-- | source/blender/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 } |