Wire the scene environment's LIVE behaviour into the running app.
rendering/environment/scene-environment.ts knows how to capture; this module tells
it WHEN. A scene-derived environment (viewer_config.environment.source = "scene")
depends on what is resident and how it looks, so it is marked stale on:
a geometry commit (eventBus 'geometry-committed', the same moment the pick buffer
is invalidated),
a slice change (sceneDimsManager listener),
an appearance change (window 'luxar-layers-changed'),
and re-captured on the next frame after a short debounce, once the loader has settled
(same predicate the adaptive-DPR manager reads). Camera motion is deliberately NOT a
trigger: a cube map from a fixed probe is view-independent, and the one camera-driven
change — LOD residency — arrives as a commit.
Under ?bakeEnv this module also runs the one-shot bake once the first load has
settled: capture, read back, expose the container on __luxarDebug.environment.lastBake
for the luxar env bake driver, and download it for a human at the keyboard.
Wire the scene environment's LIVE behaviour into the running app.
rendering/environment/scene-environment.tsknows how to capture; this module tells it WHEN. A scene-derived environment (viewer_config.environment.source = "scene") depends on what is resident and how it looks, so it is marked stale on:eventBus 'geometry-committed', the same moment the pick buffer is invalidated),sceneDimsManagerlistener),window 'luxar-layers-changed'),and re-captured on the next frame after a short debounce, once the loader has settled (same predicate the adaptive-DPR manager reads). Camera motion is deliberately NOT a trigger: a cube map from a fixed probe is view-independent, and the one camera-driven change — LOD residency — arrives as a commit.
Under
?bakeEnvthis module also runs the one-shot bake once the first load has settled: capture, read back, expose the container on__luxarDebug.environment.lastBakefor theluxar env bakedriver, and download it for a human at the keyboard.