我正在开发一个网站,用户可以使用VR控件查看天空中的物体,并使用Trackball控件深入了解他们最喜欢的物体,该控件通过单击物体进行初始化。这是演示链接:https://jsfiddle.net/tushuhei/4f1Lum5n/6/
function focus (obj, target) {
var dummyCamera = camera.clone();
controls = new THREE.TrackballControls(dummyCamera);
controls.target.set(obj.point.x, obj.point.y, obj.point.z);
new TWEEN.Tween(camera.position)
.to(target, 1000)
.onComplete(function() {
transitioning = false;
controls.dispose();
controls = new THREE.TrackballControls(camera);
controls.target.set(obj.point.x, obj.point.y, obj.point.z);
}).start();
}
TWEEN可以很好地实现从WebVR模式到Trackball模式的转换,反之亦然,但是在转换结束时仍存在一些小差距。我猜这是由于相机旋转在转换完成阶段存在的间隙造成的。
是否有方法使两种不同相机控制之间的过渡平滑,同时考虑相机位置和旋转?
谢谢!