返回
Three.js中Camera对象的构造器
前端
2023-09-14 05:14:19
Three.js源码解读——Camera系列五:Camera对象构造器
导读 :这是我参与「2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。
各位好,我是前端开发工程师Jack,上一节我们讲到了Three.js中关于焦距的概念,焦距决定了相机的视野范围,焦距过大或过小会带来很多问题。本节我们就来说一说Three.js的Camera对象,我们知道使用three.js的摄影机时,必须确定相机的类型和构造器类型,既可以指定相机的参数,也可以直接调用默认参数构造出相机对象。本节我们就来深入研究一下Camera对象的构造器。
Camera对象也继承自Object3D,实现了变换的方法,同时暴露了Camera独有的类型类型(perspectiveCamera/OrthographicCamera),FOV(视场)、Aspect(纵横比)、Near(近平面)、Far(远平面)。
Camera(fov, aspect, near, far)
参数:
fov
: 相机的视场角,以角度为单位aspect
: 相机的纵横比,为相机的宽度与高度之比near
: 相机最近的可视距离far
: 相机最远的可视距离
返回值:
一个Camera对象
示例:
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
Camera对象的属性:
fov
: 相机的视场角,以角度为单位aspect
: 相机的纵横比,为相机的宽度与高度之比near
: 相机最近的可视距离far
: 相机最远的可视距离position
: 相机的位置rotation
: 相机的旋转up
: 相机的前进方向matrixWorld
: 相机的世界矩阵matrixWorldInverse
: 相机的世界矩阵的逆矩阵projectionMatrix
: 相机的投影矩阵projectionMatrixInverse
: 相机的投影矩阵的逆矩阵viewMatrix
: 相机的视图矩阵viewMatrixInverse
: 相机的视图矩阵的逆矩阵
Camera对象的构造器提供了四种方式的重载:
Camera()
: 构造一个透视相机Camera(fov: number, aspect: number, near: number, far: number)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面和远平面Camera(left: number, right: number, top: number, bottom: number, near: number, far: number)
: 构造一个正交相机,并指定相机的左边界、右边界、上边界、下边界、近平面和远平面Camera(fov: number, aspect: number, near: number, far: number, target: Vector3)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面、远平面和目标点
Camera对象的构造器中的参数介绍:
fov
: 相机的视场角,以角度为单位aspect
: 相机的纵横比,为相机的宽度与高度之比near
: 相机最近的可视距离far
: 相机最远的可视距离left
: 相机的左边界right
: 相机的右边界top
: 相机的上边界bottom
: 相机的下边界target
: 相机的目标点
Camera对象的构造器中的返回值介绍:
Camera()
: 构造一个透视相机Camera(fov: number, aspect: number, near: number, far: number)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面和远平面Camera(left: number, right: number, top: number, bottom: number, near: number, far: number)
: 构造一个正交相机,并指定相机的左边界、右边界、上边界、下边界、近平面和远平面Camera(fov: number, aspect: number, near: number, far: number, target: Vector3)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面、远平面和目标点
Camera对象的构造器中的示例介绍:
const camera = new THREE.PerspectiveCamera()
: 构造一个透视相机const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面和远平面const camera = new THREE.OrthographicCamera(left, right, top, bottom, near, far)
: 构造一个正交相机,并指定相机的左边界、右边界、上边界、下边界、近平面和远平面const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000, target)
: 构造一个透视相机,并指定相机的视场角、纵横比、近平面、远平面和目标点
Camera对象的构造器中的注意事项:
fov
参数必须在0到180度之间aspect
参数必须大于0near
参数必须大于0far
参数必须大于near
参数
希望通过本节的学习,你能对Three.js中Camera对象的构造器有更深入的理解。
本文参考链接:
以上就是本节的内容,下节我们将继续讲解Camera系列的相关内容,敬请期待!