[Bf-blender-cvs] [19de81afe52] master: EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache

Clément Foucault noreply at git.blender.org
Tue Feb 25 14:24:54 CET 2020


Commit: 19de81afe52793ae9aa45d099f99a1392aceff2f
Author: Clément Foucault
Date:   Tue Feb 25 14:08:10 2020 +0100
Branches: master
https://developer.blender.org/rB19de81afe52793ae9aa45d099f99a1392aceff2f

EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache

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

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

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

diff --git a/source/blender/draw/engines/eevee/eevee_lookdev.c b/source/blender/draw/engines/eevee/eevee_lookdev.c
index e89ef7142ee..90977beb911 100644
--- a/source/blender/draw/engines/eevee/eevee_lookdev.c
+++ b/source/blender/draw/engines/eevee/eevee_lookdev.c
@@ -104,14 +104,17 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
       GPUShader *shader = probe_render ? EEVEE_shaders_default_studiolight_sh_get() :
                                          EEVEE_shaders_background_studiolight_sh_get();
 
+      const Scene *scene_eval = DEG_get_evaluated_scene(draw_ctx->depsgraph);
+      int cube_res = octahedral_size_from_cubesize(scene_eval->eevee.gi_cubemap_resolution);
+
       /* If one of the component is missing we start from scratch. */
       if ((stl->lookdev_grid_data == NULL) || (stl->lookdev_cube_data == NULL) ||
-          (txl->lookdev_grid_tx == NULL) || (txl->lookdev_cube_tx == NULL)) {
+          (txl->lookdev_grid_tx == NULL) || (txl->lookdev_cube_tx == NULL) ||
+          (g_data->light_cache && g_data->light_cache->ref_res != cube_res)) {
         eevee_lookdev_lightcache_delete(vedata);
       }
 
       if (stl->lookdev_lightcache == NULL) {
-        const Scene *scene_eval = DEG_get_evaluated_scene(draw_ctx->depsgraph);
 #if defined(IRRADIANCE_SH_L2)
         int grid_res = 4;
 #elif defined(IRRADIANCE_CUBEMAP)
@@ -119,11 +122,9 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
 #elif defined(IRRADIANCE_HL2)
         int grid_res = 4;
 #endif
-        int cube_res = octahedral_size_from_cubesize(scene_eval->eevee.gi_cubemap_resolution);
-        int vis_res = scene_eval->eevee.gi_visibility_resolution;
 
         stl->lookdev_lightcache = EEVEE_lightcache_create(
-            1, 1, cube_res, vis_res, (int[3]){grid_res, grid_res, 1});
+            1, 1, cube_res, 8, (int[3]){grid_res, grid_res, 1});
 
         /* XXX: Fix memleak. TODO find out why. */
         MEM_SAFE_FREE(stl->lookdev_cube_mips);



More information about the Bf-blender-cvs mailing list