在Three.js中,我希望将相机对准3D空间中的某个点。

为此,我尝试使用camera.lookAt函数,如下所示:

camera.lookAt(new THREE.Vector3(-100,-100,0));

但是,我发现该调用没有任何作用。它什么都不做。我尝试更改矢量中的数字,并且当应该更改矢量时,我总是在屏幕上看到相同的外观。

我现在才发现,如果删除代码中的THREE.TrackballControlscamera.lookAt()会正常工作。我使用THREE.TrackballControls的方式有问题吗?这就是我初始化它们的方式:
    controls = new THREE.TrackballControls( camera, renderer.domElement );

    controls.rotateSpeed = 10.0;
    controls.zoomSpeed = 1.2;
    controls.panSpeed = 0.2;

    controls.noZoom = false;
    controls.noPan = false;

    controls.staticMoving = true;
    controls.dynamicDampingFactor = 1.0;

    var radius = 5;
    controls.minDistance = radius * 1.1;
    controls.maxDistance = radius * 100;

    controls.keys = [ 65, 83, 68 ]; // [ rotateKey, zoomKey, panKey ]*/

然后在我的渲染函数中执行:
function render() {
  controls.update();
  renderer.render(scene, camera);
}

Three.js的文档非常稀缺,所以我想在这里问一下。难道我做错了什么?

最佳答案

通过查看 THREE.TrackballControls 的源代码,我发现可以通过将trackballControls.target设置为我希望它查看的THREE.Vector3,然后重新渲染场景,使相机看起来像我想要的位置。

关于javascript - ThreeJS camera.lookAt()没有效果,我做错了什么吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10325095/

10-13 07:36