From 84fffe99afb673187e35a01cf05dc06c4109526f Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 28 May 2025 17:35:46 +0200 Subject: [PATCH] Optimize FPS calculation and skip frames in render loop --- node/server/public/app.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/node/server/public/app.js b/node/server/public/app.js index dd93234..8318efc 100644 --- a/node/server/public/app.js +++ b/node/server/public/app.js @@ -586,11 +586,16 @@ renderer.domElement.addEventListener('pointerdown', onClick); // ---- Render-Loop ---- function animate(now) { requestAnimationFrame(animate); - // FPS-Limitierung - if (now - lastAnim < 1000 / targetFps) return; - lastAnim = now; - // ... Rest wie gehabt ... + // Wenn noch nicht genug Zeit vergangen ist, skippen. + if (now - lastAnim < 1000 / targetFps) return; + + // Fange kleine Zeitverluste auf, um "drift" zu vermeiden: + // lastAnim = now; // Original (verliert mit der Zeit Frames) + while (now - lastAnim >= 1000 / targetFps) { + lastAnim += 1000 / targetFps; + } + const dt = clock.getDelta(), t = clock.getElapsedTime(); if (spinnerController) spinnerController.animate(dt, t); for (let i = activeSpirits.length - 1; i >= 0; i--) {