Skip to content

Commit d221945

Browse files
authored
fix(dynamic cubemaps): add a check for timeskip (#1639)
1 parent 11d4be3 commit d221945

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/Features/DynamicCubemaps.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,19 @@ void DynamicCubemaps::Irradiance(bool a_reflections)
473473
void DynamicCubemaps::UpdateCubemap()
474474
{
475475
TracyD3D11Zone(globals::state->tracyCtx, "Cubemap Update");
476+
477+
// Reset capture when game time jumps (wait menu, timescale changes, console commands)
478+
if (auto calendar = RE::Calendar::GetSingleton()) {
479+
float currentHoursPassed = calendar->GetHoursPassed();
480+
float hoursPassedDiff = std::abs(currentHoursPassed - previousHoursPassed);
481+
previousHoursPassed = currentHoursPassed;
482+
483+
if (hoursPassedDiff >= 0.01f) { // ~36 seconds game time
484+
resetCapture[0] = true;
485+
resetCapture[1] = true;
486+
}
487+
}
488+
476489
if (recompileFlag) {
477490
logger::debug("Recompiling for Dynamic Cubemaps");
478491
auto shaderCache = globals::shaderCache;

src/Features/DynamicCubemaps.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ struct DynamicCubemaps : Feature
6868

6969
bool resetCapture[2] = { true, true };
7070
bool recompileFlag = false;
71+
float previousHoursPassed = 0.0f;
7172

7273
enum class NextTask
7374
{

0 commit comments

Comments
 (0)