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>2019-08-12 02:47:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-08-14 14:36:56 +0300
commitd5002f007e8d770dea15f0881cd9d0a4f3aaf824 (patch)
treefabe9add7890d37884e2a9bf3c6e48c01bd7ff8a /source/blender/draw/engines/eevee/shaders/prepass_frag.glsl
parent8a338950c6ddde37ddefadd75c39d4d2efc7aee3 (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.glsl6
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