[Bf-blender-cvs] [88cce6faea6] master: Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders

Clément Foucault noreply at git.blender.org
Fri Jun 14 19:17:17 CEST 2019


Commit: 88cce6faea6930321561df22822748c32ee98c1a
Author: Clément Foucault
Date:   Fri Jun 14 18:19:45 2019 +0200
Branches: master
https://developer.blender.org/rB88cce6faea6930321561df22822748c32ee98c1a

Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders

The wrong volume buffer was used one frame out of two.

===================================================================

M	source/blender/draw/engines/eevee/eevee_volumes.c

===================================================================

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);



More information about the Bf-blender-cvs mailing list