参考:
threejs解决缩放到某个距离就不能继续缩放_three.js 模型无法缩放-优快云博客
threejs解决缩放到某个距离就不能继续缩放 解决方案二_three滑轮放大到一定程度,就放大不动了-优快云博客
上篇写道,可通过修改相机fov方式缩放视角。本篇采用修改相机zoom方式缩放视角
function onDocumentMouseWheel(event) {
const zoom = camera.zoom + event.deltaY * 0.001;
// 缩放时,使用TWEEN.js平滑过渡fov
new TWEEN.Tween({
zoom: camera.zoom
})
.to({
zoom: zoom
}, 300)
.onUpdate((obj) => {
camera.zoom = THREE.MathUtils.clamp(obj.zoom, 0, 3);
camera.updateProjectionMatrix();
})
.onComplete(() => {
})
.start();
}
对比zoom和fov
含义 | 缩小 | 放大 | 是否变形 | |
fov | 视角,类似眼睛看的范围 | 视角窄,类似望远镜,物体被拉近 | 视角广,类似广角相机,边缘变形 | 是,尤其是大角度 |
zoom | 层级,相当于直接把相机往里推/往外拉 | 画面缩小 | 画面放大 | 否 |