我有一个场景,它渲染了一个带有多个对象的板。单击其中一个对象并通过使用对象拾取,我可以获得对象并将相机位置设置为动画以位于对象的“俯视”视图中。然后使用 camera.lookAt 方法,我可以强制相机直接看对象。
在 onUpdate 方法中调用 camera.lookAt 时,我注意到动画开始时的快速跳转,因为它最初有很大的距离可以旋转以查看所选对象。相比之下,对 camera.lookAt 的每个后续调用都很小,并且动画效果很好。
// Position the camera to fit
var tween = new TWEEN.Tween(camera.position).to({
x: selectedObject.position.x,
y: selectedObject.position.y,
z: 1
}).easing(TWEEN.Easing.Quadratic.InOut).onUpdate(function() {
camera.lookAt(selectedObject.position);
}).onComplete(function() {
camera.lookAt(selectedObject.position);
}).start();
有什么方法可以为该方法设置动画,还是我必须手动转换相机的矩阵值才能查看我选择的对象?
这是一个例子。它使用 WebGLRenderer,所以请使用合适的浏览器。
http://jsfiddle.net/fungus1487/SMLwa/
谢谢你的帮助。