上一篇学完正交相机,可以了解到比较关键的几个概念。

:::vip

  1. 相机的种类(正交相机、透视相机)
  2. 相机的摆放位置(camera.position.set用于设置相机在世界坐标当中的位置)
  3. 相机的朝向(camera.lookAt用于设置相机朝哪个方向) :::

正交相机的可视角度接近计算机的平面显示,而透视相机更加符合显示生活中各种生物的视觉特征。透视相机可以设置视角宽度,就好比上篇文章中所提到的,鸟类的视角和人类的视角宽度不同。

关于透视相机的模型可以参考这张图

threejs透视相机

透视相机总体是一个锥型,离相机位置较近的界面叫做近截面,离相机较远的位置叫做远截面。近截面和相机的距离,就是视锥体近端。远截面和相机的距离就是视锥体远端的距离。

透视相机的api如下

PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number ) fov — 相机视锥体视野宽度. aspect — 相机视锥体宽高比 near — 视锥体近端 far — 视锥体远端

示例代码:

// 设置相机
const camera = new THREE.PerspectiveCamera(
  45,
  window.innerWidth / window.innerHeight,
  0.1,
  1000
);
// 设置相机位置
camera.position.set(0, 2, 4);
// 设置相机朝向
camera.lookAt(0, 0, 0);
// 将相机添加到场景中
scene.add(camera);