From 81c62104deb4bd8523728b025b51e358182c4979 Mon Sep 17 00:00:00 2001 From: FenjuFu <92919259+FenjuFu@users.noreply.github.com> Date: Thu, 10 Sep 2026 13:08:37 +0800 Subject: [PATCH] fix(viewer): clamp GLB floor animation on slow frames Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> --- packages/viewer/src/components/viewer/glb-scene.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/viewer/src/components/viewer/glb-scene.tsx b/packages/viewer/src/components/viewer/glb-scene.tsx index e2e604dca0..4d19c1c196 100644 --- a/packages/viewer/src/components/viewer/glb-scene.tsx +++ b/packages/viewer/src/components/viewer/glb-scene.tsx @@ -599,7 +599,9 @@ export function GlbScene({ const targetY = baseY + (exploded ? index * EXPLODED_GAP : 0) // Snap (not lerp) in walkthrough so the first-person collider, built from // these world positions, matches the stacked building immediately. - node.position.y = walkthroughMode ? targetY : lerp(node.position.y, targetY, delta * 12) + node.position.y = walkthroughMode + ? targetY + : lerp(node.position.y, targetY, Math.min(1, delta * 12)) // Solo: hidden levels above the soloed one keep casting shadows // (shadow-caster-only); below-levels can't block the sun, so plain-hide. const hidden =