我有一个场景,可以呈现带有几个对象的棋盘。点击其中一个对象并使用对象拾取技术,我可以获取该对象并将摄像机位置动画到该对象的“俯视图”。然后,使用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();
有没有办法对这种方法进行动画处理,或者我必须手动转换相机矩阵的值来查看我的选择对象?
这里是一个带有示例的fiddle。它使用WebGLRenderer,所以请使用适当的浏览器。
http://jsfiddle.net/fungus1487/SMLwa/
感谢任何帮助。