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/eevee_engine.c | |
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/eevee_engine.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_engine.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index b36ad540ef9..ab4eb7b8532 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -295,7 +295,13 @@ static void eevee_draw_background(void *vedata) EEVEE_volumes_resolve(sldata, vedata); /* Transparent */ + /* TODO(fclem): should be its own Framebuffer. + * This is needed because dualsource blending only works with 1 color buffer. */ + GPU_framebuffer_texture_attach(fbl->main_color_fb, dtxl->depth, 0, 0); + GPU_framebuffer_bind(fbl->main_color_fb); DRW_draw_pass(psl->transparent_pass); + GPU_framebuffer_bind(fbl->main_fb); + GPU_framebuffer_texture_detach(fbl->main_color_fb, dtxl->depth); /* Post Process */ DRW_stats_group_start("Post FX"); |