diff --git a/blog/static/main.js b/blog/static/main.js index d215210..cb26ea1 100644 --- a/blog/static/main.js +++ b/blog/static/main.js @@ -3,9 +3,12 @@ import { OBJLoader } from 'three/addons/loaders/OBJLoader.js'; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); - let modelObject = new THREE.Object3D; +// Rotation speed of the 3D model. +const rotationSpeed = 1.0; +let previousFrame = performance.now(); + // Rendering. const renderer = new THREE.WebGLRenderer({ canvas: document.querySelector('#canvas'), @@ -62,6 +65,14 @@ objectLoader.load( // Animate function. function animate() { - modelObject.rotateY(-THREE.MathUtils.degToRad(1)); + const currentFrame = performance.now(); + const deltaTime = (currentFrame - previousFrame) / 1000; + previousFrame = currentFrame; + + const rotationAngle = rotationSpeed * deltaTime; + modelObject.rotateY(-rotationAngle); + renderer.render(scene, camera); + + requestAnimationFrame(animate); }