У меня возникает странная проблема с рендерингом сферы во вращении: кажется, что анимация дрожит, и я не знаю, откуда эта проблема.Three.js - проблема с рендерингом - анимация дрожит
Вот пример на this link
и функция визуализации:
function render() {
controls.update();
requestAnimationFrame(render);
// For camera rotation : parametric parameter
timer = Date.now()*0.0001;
// Coordinates of camera
coordCamera.set(radiusCamera*Math.cos(timer), radiusCamera*Math.sin(timer), 0);
// Rotate camera function
rotateCamera();
// Rendering
renderer.render(scene, camera);
}
с rotateCamera
и computeRotation
функции:
function computeRotation (objectRotation, coordObject) {
// Apply rotation matrix
var rotationAll = new THREE.Matrix4();
var rotationX = new THREE.Matrix4().makeRotationX(objectRotation.rotation.x);
var rotationY = new THREE.Matrix4().makeRotationY(objectRotation.rotation.y);
var rotationZ = new THREE.Matrix4().makeRotationZ(objectRotation.rotation.z);
rotationAll.multiplyMatrices(rotationX, rotationY);
rotationAll.multiply(rotationZ);
// Compute world coordinates
coordObject.applyMatrix4(rotationAll);
}
function rotateCamera() {
// Compute coordinates of camera
computeRotation(torus, coordCamera);
// Set camera position for motion
camera.position.set(coordCamera.x, coordCamera.y, coordCamera.z)
}
Если кто-то мог видеть то, что случилось, это было бы хорошо,
Спасибо за вашу помощь
UPDATE:
Я попытался вставить решение нижеприведенного; Я не добирался, чтобы сделать работу анимации, ничего не отображается: здесь моя попытка на jsfiddle:
https://jsfiddle.net/ysis81/uau3nw2q/5/
Я попытался также с performance.now(), но анимация по-прежнему качалке; вы можете проверить это на https://jsfiddle.net/ysis81/2Lok5agy/3/
Я начал щедрость, чтобы решить, возможно, эту проблему.
Что вы подразумеваете под тряской? Пробовали ли вы использовать игровой цикл с постоянным временем обновления и интерполяции анимаций? –
@ Michał Miszczyszyn Во время вращения шар сглаживает, так как обновление анимации не было непрерывным или было отрывистым ... вы имеете в виду, что вы не можете воспроизвести проблему на своем компьютере с помощью моих jsfiddle ссылок? – youpilat13
Попробуйте следующее: https://jsfiddle.net/3urtkpkv/. Вы не должны просить «TrackballControls» управлять камерой, а затем пытаться самостоятельно управлять камерой. Будь проще. Фактически, я бы переключился на «OrbitControls». Он имеет свойство 'autoRotate'. – WestLangley