Optimize FPS calculation and skip frames in render loop

This commit is contained in:
2025-05-28 17:35:46 +02:00
parent d59c80d28a
commit 84fffe99af

View File

@@ -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--) {