diff --git a/engine/core/include/scene.hpp b/engine/core/include/scene.hpp index c5a41be..55090ba 100755 --- a/engine/core/include/scene.hpp +++ b/engine/core/include/scene.hpp @@ -236,6 +236,8 @@ public: bool sun_light_dirty = false; std::array point_light_dirty; std::array spot_light_dirty; + + int shadow_refresh_timer = 5; // environment std::array environment_dirty; diff --git a/engine/renderer/src/shadowpass.cpp b/engine/renderer/src/shadowpass.cpp index d7f0103..6cd1d40 100755 --- a/engine/renderer/src/shadowpass.cpp +++ b/engine/renderer/src/shadowpass.cpp @@ -87,6 +87,11 @@ void ShadowPass::create_scene_resources(Scene& scene) { void ShadowPass::render(GFXCommandBuffer* command_buffer, Scene& scene) { last_spot_light = 0; last_point_light = 0; + + if(scene.shadow_refresh_timer > 0) { + scene.shadow_refresh_timer--; + return; + } auto lights = scene.get_all(); for(auto [obj, light] : lights) {