Skip to content

PerspectiveCamera:透视相机(最常用)

透视相机会模拟人眼/真实摄像机:远处物体看起来更小。大部分 3D 场景都会用它。

构造参数

ts
const camera = new THREE.PerspectiveCamera(
  75,                          // fov:垂直视角(度)
  window.innerWidth / window.innerHeight, // aspect:宽高比
  0.1,                         // near:近裁剪面
  1000                         // far:远裁剪面
);

常见实践

  1. 保持 aspect 正确:窗口尺寸变化时更新
ts
window.addEventListener("resize", () => {
  camera.aspect = window.innerWidth / window.innerHeight;
  camera.updateProjectionMatrix();
});
  1. 合理设置 near/far:差距越大越容易出现深度精度问题(z-fighting)

练习

  • 用 GUI 调 fov/near/far,观察透视畸变与裁剪效果
  • 把一个地面放远一点,观察 z-fighting 的出现与缓解方法