diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-11-04 19:16:06 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-11-04 19:16:20 +0300 |
commit | 96e8dadda0b2dda7ce771b1eba2d901a056a039f (patch) | |
tree | 38ff5b1ad61660c50a9321fcc8df8d486c7644e1 /source/blender/gpu | |
parent | 78234eb214641aefe16b3c928dc3173bd0e452f7 (diff) |
Fix T82385 EEVEE: Alpha Clip shadows actually using Alpha Hashed shadows
The shadow path was not using the alpha threshold.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_output_material.glsl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_output_material.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_output_material.glsl index 4cb00c15b78..14271f9d107 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_output_material.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_output_material.glsl @@ -1,5 +1,9 @@ -void node_output_material( - Closure surface, Closure volume, vec3 displacement, float alpha_threshold, out Closure result) +void node_output_material(Closure surface, + Closure volume, + vec3 displacement, + float alpha_threshold, + float shadow_threshold, + out Closure result) { #ifdef VOLUMETRICS result = volume; @@ -7,9 +11,9 @@ void node_output_material( result = surface; # if defined(USE_ALPHA_HASH) /* Alpha clip emulation. */ - if (alpha_threshold >= 0.0) { + if ((rayType != EEVEE_RAY_SHADOW) ? (alpha_threshold >= 0.0) : (shadow_threshold >= 0.0)) { float alpha = saturate(1.0 - avg(result.transmittance)); - result.transmittance = vec3(step(alpha, alpha_threshold)); + result.transmittance = vec3(step(alpha, max(alpha_threshold, shadow_threshold))); } # endif #endif |