相机配置在三JS

时间:2014-05-14 14:18:10

标签: javascript camera three.js

我在ThreeJS中是全新的,我正在尝试使用它构建我的Web应用程序。我遇到了相机配置问题。

我有一个能够在我的场景的每个点上观察和移动的透视摄像机。

问题是我只想让我的相机可以看到每一点(左,右,上,下)。但是,我不希望它可以在每一点上移动(我的意思是移动和外观之间的区别,而不是相同的行为)。我希望它只能在Z轴(深度)上移动。

在这里,我的相机:

this.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

2 个答案:

答案 0 :(得分:0)

我认为这是你需要的答案

https://stackoverflow.com/a/15661803/507186

camera.translateZ( - distance );

它将在不改变LookAt位置的情况下进行翻译

答案 1 :(得分:0)

首先是对相机配置的一个小解释

this.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

PerspectiveCamera (fov,aspect,near,far);

  • fov - 相机视锥体垂直视野。
  • 方面 - 相机平截头宽高比。(宽度/高度)
  • 靠近 - 靠近飞机的摄像机视锥。
  • - 相机平截头远飞机。

这会配置相机,但它不会控制相机的移动或它看到的位置。

要控制相机的外观,请使用以下代码:

this.camera.lookAt(new THREE.Vector3(0,0,0)); // x, y, z

但是如果你使用一些库来控制相机(OrbitControls.js),你可能不得不使用:

this.controls.target.set( 0, 0, 0 ); //x, y, z

如果您不使用任何库来控制相机,那么您应该对“ lookAt()”没有任何问题。

要将相机保持在固定位置,请使用以下代码:

this.camera.position.x      =   0;
this.camera.position.z      =   0;
this.camera.position.y      =   0;

Ahora lo que realmente desea es administrar la profundidad delacámaraquetendráqueutilizar elsiguientecódigo:

this.fov = 0;
this.camera.projectionMatrix.makePerspective(this.fov,  window.innerWidth   /   window.innerHeight, this.near,  this.far));
  

小心这一点,以免远近控制视野。

有关详细信息,请参阅threejs.org