Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-11-04 19:16:06 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-11-04 19:16:20 +0300
commit96e8dadda0b2dda7ce771b1eba2d901a056a039f (patch)
tree38ff5b1ad61660c50a9321fcc8df8d486c7644e1 /source/blender/gpu
parent78234eb214641aefe16b3c928dc3173bd0e452f7 (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.glsl12
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