[Bf-blender-cvs] [5d5add5de2b] blender-v2.82-release: Fix T69794 "Bake Cubemap Only" resets Irradiance Volume if world is updated

Clément Foucault noreply at git.blender.org
Thu Jan 16 19:47:21 CET 2020


Commit: 5d5add5de2b384797851d5b9d964b2cf0e1410c7
Author: Clément Foucault
Date:   Thu Jan 16 19:45:08 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB5d5add5de2b384797851d5b9d964b2cf0e1410c7

Fix T69794 "Bake Cubemap Only" resets Irradiance Volume if world is updated

Was caused by a clear done for when irradiance need to be baked.

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

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

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

diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c
index 261b7f00e42..aa904036463 100644
--- a/source/blender/draw/engines/eevee/eevee_lightcache.c
+++ b/source/blender/draw/engines/eevee/eevee_lightcache.c
@@ -830,17 +830,19 @@ static void eevee_lightbake_render_world_sample(void *ved, void *user_data)
   EEVEE_lightbake_render_world(sldata, vedata, lbake->rt_fb);
   EEVEE_lightbake_filter_diffuse(sldata, vedata, lbake->rt_color, lbake->store_fb, 0, 1.0f);
 
-  /* Clear the cache to avoid white values in the grid. */
-  GPU_framebuffer_texture_attach(lbake->store_fb, lbake->grid_prev, 0, 0);
-  GPU_framebuffer_bind(lbake->store_fb);
-  /* Clear to 1.0f for visibility. */
-  GPU_framebuffer_clear_color(lbake->store_fb, ((float[4]){1.0f, 1.0f, 1.0f, 1.0f}));
-  DRW_draw_pass(vedata->psl->probe_grid_fill);
+  if (lcache->flag & LIGHTCACHE_UPDATE_GRID) {
+    /* Clear the cache to avoid white values in the grid. */
+    GPU_framebuffer_texture_attach(lbake->store_fb, lbake->grid_prev, 0, 0);
+    GPU_framebuffer_bind(lbake->store_fb);
+    /* Clear to 1.0f for visibility. */
+    GPU_framebuffer_clear_color(lbake->store_fb, ((float[4]){1.0f, 1.0f, 1.0f, 1.0f}));
+    DRW_draw_pass(vedata->psl->probe_grid_fill);
 
-  SWAP(GPUTexture *, lbake->grid_prev, lcache->grid_tx.tex);
+    SWAP(GPUTexture *, lbake->grid_prev, lcache->grid_tx.tex);
 
-  /* Make a copy for later. */
-  eevee_lightbake_copy_irradiance(lbake, lcache);
+    /* Make a copy for later. */
+    eevee_lightbake_copy_irradiance(lbake, lcache);
+  }
 
   lcache->cube_len = 1;
   lcache->grid_len = lbake->grid_len;



More information about the Bf-blender-cvs mailing list