一、坐标系概念
在 three.js
中,相机的默认朝向是沿着 Z 轴的负方向 。也就是说,默认情况下,相机会沿着 Z 轴的负方向"看"到场景中的对象,而 X 轴和 Y 轴分别对应水平方向和垂直方向。换句话说,相机的默认位置是 (0, 0, 0)
,并且它会朝向 负 Z 轴。
默认方向:
- X 轴:水平,正方向向右,负方向向左。
- Y 轴:垂直,正方向向上,负方向向下。
- Z 轴:深度,正方向向外(远离相机),负方向向里(靠近相机)。
默认相机朝向:
默认情况下,当你创建一个相机(比如 THREE.PerspectiveCamera
)时,相机会位于 (0, 0, 0)
,并且它会朝向 Z 轴的负方向
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 0, 5); // 相机的位置在 (0, 0, 5)
camera.lookAt(0, 0, 0); // 相机朝向 (0, 0, 0)
在这个例子中,camera.position.set(0, 0, 5)
表示将相机放置在 Z = 5
的位置,即距离场景原点 5 个单位。默认情况下,相机会朝向场景的中心 (0, 0, 0)
,即 lookAt(0, 0, 0)
。
二、调整相机的朝向
如果你想改变相机的朝向或方向,可以通过以下方法:
-
修改
camera.lookAt()
:lookAt()
方法可以让相机指向一个特定的点。可以传入一个目标点的坐标或一个THREE.Vector3
对象来调整相机的朝向。// 相机指向 (1, 1, 0) 位置 camera.lookAt(new THREE.Vector3(1, 1, 0));
-
直接设置相机的旋转 : 你还可以直接设置相机的旋转(
rotation.x
,rotation.y
,rotation.z
),这将改变相机的朝向。camera.rotation.x = Math.PI / 4; // 旋转相机 45 度
-
修改相机位置 : 你可以直接通过设置相机的位置 (
camera.position.set(x, y, z)
) 来控制相机的位置,并通过lookAt()
或旋转来调整相机的朝向
注:Unity 使用的是左手坐标系,threejs是右手坐标系