[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