improve rotation
This commit is contained in:
@@ -3,9 +3,12 @@ import { OBJLoader } from 'three/addons/loaders/OBJLoader.js';
|
|||||||
|
|
||||||
const scene = new THREE.Scene();
|
const scene = new THREE.Scene();
|
||||||
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||||
|
|
||||||
let modelObject = new THREE.Object3D;
|
let modelObject = new THREE.Object3D;
|
||||||
|
|
||||||
|
// Rotation speed of the 3D model.
|
||||||
|
const rotationSpeed = 1.0;
|
||||||
|
let previousFrame = performance.now();
|
||||||
|
|
||||||
// Rendering.
|
// Rendering.
|
||||||
const renderer = new THREE.WebGLRenderer({
|
const renderer = new THREE.WebGLRenderer({
|
||||||
canvas: document.querySelector('#canvas'),
|
canvas: document.querySelector('#canvas'),
|
||||||
@@ -62,6 +65,14 @@ objectLoader.load(
|
|||||||
|
|
||||||
// Animate function.
|
// Animate function.
|
||||||
function animate() {
|
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);
|
renderer.render(scene, camera);
|
||||||
|
|
||||||
|
requestAnimationFrame(animate);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user