Make example animations framerate independent

This commit is contained in:
Diego Marcos Segura
2025-07-04 08:39:25 -05:00
parent c65bbcfefb
commit cd40e139d1
3 changed files with 13 additions and 5 deletions
+5 -2
View File
@@ -50,9 +50,12 @@
modifiers.setDepthColor(butterfly2, 1, 2, true);
scene.add(butterfly2);
let lastTime;
renderer.setAnimationLoop(function animate(time) {
butterfly.rotation.y += 0.01;
butterfly2.rotation.x += 0.01;
const deltaTime = time - (lastTime || time);
lastTime = time;
butterfly.rotation.y += deltaTime / 2500;
butterfly2.rotation.x += deltaTime / 2500;
renderer.render(scene, camera);
});
</script>
+4 -2
View File
@@ -80,10 +80,12 @@
duck.position.set(0, 0.45, -0.4);
scene.add(duck);
let renderedEnvMap = false;
let lastTime;
renderer.setAnimationLoop(function animate(time) {
const deltaTime = time - (lastTime || time);
lastTime = time;
renderer.render(scene, camera);
duck.rotation.y += 0.01;
duck.rotation.y += deltaTime / 2500;
// Make sure we only launch async renderEnvMap once
if (!renderedEnvMap) {
+4 -1
View File
@@ -106,10 +106,13 @@
await createViewpoint(new THREE.Vector3(0.5, -1, -3), new THREE.Vector2(0.5, -0.5), 1),
];
let lastTime;
renderer.setAnimationLoop(function animate(time) {
const deltaTime = time - (lastTime || time);
lastTime = time;
scene.background.set(0x000000);
renderer.render(scene, camera);
butterfly.rotation.y += 0.01;
butterfly.rotation.y += deltaTime / 2500;
// Render each viewpoint (with a different background each)
for (let i = 0; i < viewpoints.length; i++) {