【发布时间】:2022-11-19 03:18:10
【问题描述】:
我想重置具有主动阻尼功能的相机。我尝试了不同的方法,但我不知道它们是否正确。
目标是停止阻尼并设置相机的初始位置,然后再次激活阻尼。我想避免在使用按钮重置控件后模型/相机稍微旋转。我会这样做:
controls.enableDamping = false;
controls.update();
camera.position.set( 10, 13, 10 );
camera.lookAt( 0, 0, 0 );
controls.enableDamping = true;
controls.update();
我的渲染函数由 EventListener 调用:
controls.addEventListener( "change", requestRenderer );
和渲染功能:
const renderer = new THREE.WebGLRenderer( { canvas: canvas, antialias: true, alpha: true } );
let renderRequested = false;
function render( time ) {
time *= 0.001;
renderRequested = false;
resizeRenderer( renderer, camera );
controls.update();
renderer.render( scene, camera );
}
function requestRenderer() {
if( !renderRequested ) {
renderRequested = true;
requestAnimationFrame( render );
}
}
这很好用。问题是这是否是正确的方法,我什么时候必须更新控件?我认为第一次更新是必要的,以告诉控件阻尼不再处于活动状态(但更新有什么作用?)而且我认为,我不需要第二次更新。
【问题讨论】:
标签: three.js