摄像机
Camera(摄像机)
摄像机的抽象基类。在构建新摄像机时,应始终继承此类。
属性
isCamera : Boolean
layers : Layers
摄像机是一个layers的成员. 这是一个从Object3D继承而来的属性。
matrixWorldInverse : Matrix4
这是matrixWorld矩阵的逆矩阵。 MatrixWorld包含了相机的世界变换矩阵。
projectionMatrix : Matrix4
这是投影变换矩阵。
projectionMatrixInverse : Matrix4
这是投影变换矩阵的逆矩阵。
方法
.clone ( ) : Camera
返回一个具有和当前相机的属性一样的新的相机。
.copy ( source : Camera, recursive : Boolean ) : this
将源摄像机的属性复制到新摄像机中。
getWorldDirection ( target : Vector3 ) : Vector3
target — 调用该函数的结果将复制给该Vector3对象。返回一个能够表示当前摄像机所正视的世界空间方向的Vector3对象。 (注意:摄像机俯视时,其Z轴坐标为负。)
ArrayCamera(摄像机阵列)
ArrayCamera 用于更加高效地使用一组已经预定义的摄像机来渲染一个场景。这将能够更好地提升VR场景的渲染性能。
ArrayCamera( array : Array )
一个包含多个摄像机的数组。
属性
cameras : Array
摄像机数组。
isArrayCamera : Boolean
方法
共有方法请参见其基类PerspectiveCamera。
CubeCamera(立方相机)
创建6个渲染到WebGLCubeRenderTarget的摄像机。
CubeCamera( near : Number, far : Number, renderTarget : WebGLCubeRenderTarget )
near -- 近剪切面的距离
far -- 远剪切面的距离
renderTarget -- The destination cube render target.
属性
renderTarget : WebGLCubeRenderTarget
方法
.update ( renderer : WebGLRenderer, scene : Scene ) : undefined
renderer -- 当前的WebGL渲染器
scene -- 当前的场景
OrthographicCamera(正交相机)
这一摄像机使用orthographic projection(正交投影)来进行投影。在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。这对于渲染2D场景或者UI元素是非常有用的。
OrthographicCamera( left : Number, right : Number, top : Number, bottom : Number, near : Number, far : Number )
left — 摄像机视锥体左侧面。
right — 摄像机视锥体右侧面。
top — 摄像机视锥体上侧面。
bottom — 摄像机视锥体下侧面。
near — 摄像机视锥体近端面。
far — 摄像机视锥体远端面。
PerspectiveCamera(透视相机)
这一投影模式被用来模拟人眼所看到的景象,它是3D场景的渲染中使用得最普遍的投影模式。
PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )
fov — 摄像机视锥体垂直视野角度
aspect — 摄像机视锥体长宽比
near — 摄像机视锥体近端面
far — 摄像机视锥体远端面
属性
.aspect : Float
摄像机视锥体的长宽比,通常是使用画布的宽/画布的高。默认值是1(正方形画布)。
.far : Float
摄像机的远端面,默认值是2000。
.filmGauge : Float
胶片尺寸,其默认值为35(毫米)。 这个参数不会影响摄像机的投影矩阵,除非.filmOffset被设置为了一个非零的值。
.filmOffset : Float
水平偏离中心偏移量,和.filmGauge单位相同。默认值为0。
.focus : Float
用于立体视觉和景深效果的物体的距离。 这个参数不会影响摄像机的投影矩阵,除非使用了StereoCamera。 默认值是10。
.fov : Float
摄像机视锥体垂直视野角度,从视图的底部到顶部,以角度来表示。默认值是50。
near : Float
摄像机的近端面,默认值是0.1。
.zoom : number
获取或者设置摄像机的缩放倍数,其默认值为1。
方法
.clearViewOffset () : undefined
清除任何由.setViewOffset设置的偏移量。
.getEffectiveFOV () : Float
结合.zoom(缩放倍数),以角度返回当前垂直视野角度。
.getFilmHeight () : Float
返回当前胶片上图像的高,如果.aspect小于或等于1(肖像格式、纵向构图),则结果等于.filmGauge。
.getFilmWidth () : Float
返回当前胶片上图像的宽,如果.aspect大于或等于1(景观格式、横向构图),则结果等于.filmGauge。
.getFocalLength () : Float
返回当前.fov(视野角度)相对于.filmGauge(胶片尺寸)的焦距。
.setFocalLength ( focalLength : Float ) : undefined
通过相对于当前.filmGauge的焦距,设置FOV。
.setViewOffset ( fullWidth : Float, fullHeight : Float, x : Float, y : Float, width : Float, height : Float ) : undefined
fullWidth — 多视图的全宽设置
fullHeight — 多视图的全高设置
x — 副摄像机的水平偏移
y — 副摄像机的垂直偏移
width — 副摄像机的宽度
height — 副摄像机的高度
.updateProjectionMatrix () : undefined
更新摄像机投影矩阵。在任何参数被改变以后必须被调用。
.toJSON (meta : Object) : Object
meta -- 包含有元数据的对象,例如对象后代中的纹理或图像
StereoCamera(立体相机)
双透视摄像机(立体相机)常被用于创建3D Anaglyph(3D立体影像) 或者Parallax Barrier(视差屏障)。
StereoCamera( )
属性
.aspect : Float
默认值是1.
.eyeSep : Float
默认值是0.064.
.cameraL : PerspectiveCamera
左摄像机,它被加入到了layer 1中 —— 需要被左摄像机渲染的物体也应当要加入到这一层中。
.cameraR : PerspectiveCamera
右摄像机,它被加入到了layer 2中 —— 需要被右摄像机渲染的物体也应当要加入到这一层中。
方法
.update ( camera : PerspectiveCamera ) : undefined
基于摄像机通过场景,更新立体摄像机。