我在ThreeJS中是全新的,我正在尝试使用它构建我的Web应用程序。我遇到了相机配置问题。
我有一个能够在我的场景的每个点上观察和移动的透视摄像机。
问题是我只想让我的相机可以看到每一点(左,右,上,下)。但是,我不希望它可以在每一点上移动(我的意思是移动和外观之间的区别,而不是相同的行为)。我希望它只能在Z轴(深度)上移动。
在这里,我的相机:
this.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
答案 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);
这会配置相机,但它不会控制相机的移动或它看到的位置。
要控制相机的外观,请使用以下代码:
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