diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-06-14 19:19:45 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-06-14 20:17:06 +0300 |
commit | 88cce6faea6930321561df22822748c32ee98c1a (patch) | |
tree | 994438fd50950f853dce4363cbea571b93d59692 /source/blender/draw/engines/eevee/eevee_volumes.c | |
parent | 34644f520a467d39854d95ecd7af6d41c3a4745e (diff) |
Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders
The wrong volume buffer was used one frame out of two.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_volumes.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_volumes.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c index e3afa91a5a9..a14e9b08053 100644 --- a/source/blender/draw/engines/eevee/eevee_volumes.c +++ b/source/blender/draw/engines/eevee/eevee_volumes.c @@ -571,10 +571,6 @@ void EEVEE_volumes_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->volume_scatter_history), GPU_ATTACHMENT_TEXTURE(txl->volume_transmit_history)}); - - /* Usage happens after buffer have been swapped. */ - effects->volume_scatter = txl->volume_scatter_history; - effects->volume_transmit = txl->volume_transmit_history; } else { DRW_TEXTURE_FREE_SAFE(txl->volume_prop_scattering); @@ -588,10 +584,10 @@ void EEVEE_volumes_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) GPU_FRAMEBUFFER_FREE_SAFE(fbl->volumetric_fb); GPU_FRAMEBUFFER_FREE_SAFE(fbl->volumetric_scat_fb); GPU_FRAMEBUFFER_FREE_SAFE(fbl->volumetric_integ_fb); - - effects->volume_scatter = e_data.dummy_scatter; - effects->volume_transmit = e_data.dummy_transmit; } + + effects->volume_scatter = e_data.dummy_scatter; + effects->volume_transmit = e_data.dummy_transmit; } void EEVEE_volumes_compute(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) @@ -618,6 +614,9 @@ void EEVEE_volumes_compute(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *veda SWAP(GPUTexture *, txl->volume_scatter, txl->volume_scatter_history); SWAP(GPUTexture *, txl->volume_transmit, txl->volume_transmit_history); + effects->volume_scatter = txl->volume_scatter; + effects->volume_transmit = txl->volume_transmit; + /* Restore */ GPU_framebuffer_bind(fbl->main_fb); |