diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-08-12 02:47:30 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-08-14 14:36:56 +0300 |
commit | d5002f007e8d770dea15f0881cd9d0a4f3aaf824 (patch) | |
tree | fabe9add7890d37884e2a9bf3c6e48c01bd7ff8a /source/blender/draw/engines/eevee/shaders/prepass_frag.glsl | |
parent | 8a338950c6ddde37ddefadd75c39d4d2efc7aee3 (diff) |
Eevee: Improve Transparent BSDF behavior
Alpha blended Transparency is now using dual source blending making it
fully compatible with cycles Transparent BSDF.
Multiply and additive blend mode can be achieved using some nodes and are
going to be removed.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/prepass_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/prepass_frag.glsl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/prepass_frag.glsl b/source/blender/draw/engines/eevee/shaders/prepass_frag.glsl index e7b31b94f81..dea6bc020ec 100644 --- a/source/blender/draw/engines/eevee/shaders/prepass_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/prepass_frag.glsl @@ -71,14 +71,16 @@ void main() Closure cl = nodetree_exec(); + float opacity = saturate(1.0 - avg(cl.transmittance)); + # if defined(USE_ALPHA_HASH) /* Hashed Alpha Testing */ - if (cl.opacity < hashed_alpha_threshold(worldPosition)) { + if (opacity < hashed_alpha_threshold(worldPosition)) { discard; } # elif defined(USE_ALPHA_CLIP) /* Alpha clip */ - if (cl.opacity <= alphaThreshold) { + if (opacity <= alphaThreshold) { discard; } # endif |