PerspectiveCamera - Camera with perspective projection

Constructor

class PerspectiveCamera(fov, aspect, near, far)

Camera with perspective projection

Part of scene graph

Inherits from Object3D() Camera()

Arguments:
  • fov (float) – field of view
  • aspect (float) – aspect ratio
  • near (float) – near
  • far (float) – far

Attributes

PerspectiveCamera.fov

Camera frustum vertical field of view

PerspectiveCamera.aspect

Camera frustum aspect ratio

PerspectiveCamera.near

Camera frustum near plane

PerspectiveCamera.far

Camera frustum far plane

Multi-view attributes

PerspectiveCamera.fullWidth
PerspectiveCamera.fullHeight
PerspectiveCamera.x
PerspectiveCamera.y
PerspectiveCamera.width
PerspectiveCamera.height

Methods

PerspectiveCamera.updateProjectionMatrix()

Updates camera’s projection matrix. Must be called after change of parameters.

PerspectiveCamera.setLens (focalLength, frameSize)

Uses focal length (in mm) to estimate and set FOV 35mm (fullframe) camera is used if frame size is not specified.

Formula based on http://www.bobatkins.com/photography/technical/field_of_view.html

Arguments:
  • focalLength (float) – focal length
  • frameSize (float) – frame size
PerspectiveCamera.setViewOffset (fullWidth, fullHeight, x, y, width, height)

Sets an offset in a larger frustum. This is useful for multi-window or multi-monitor/multi-machine setups.

For example, if you have 3x2 monitors and each monitor is 1920x1080 and the monitors are in grid like this:

A B C
D E F

then for each monitor you would call it like this:

var w = 1920;
var h = 1080;
var fullWidth = w * 3;
var fullHeight = h * 2;

// --A--
camera.setOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
//--B--
camera.setOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
//--C--
camera.setOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
//--D--
camera.setOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
//--E--
camera.setOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
//--F--
camera.setOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );

Note there is no reason monitors have to be the same size or in a grid.

Arguments:
  • fullWidth (float) – full width of multi-view setup
  • fullHeight (float) – full height of multi-view setup
  • x (float) – x-offset of subcamera
  • y (float) – y-offset of subcamera
  • width (float) – width of subcamera
  • height (float) – height of subcamera

Example

var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
scene.add( camera );

Previous topic

OrthographicCamera - Camera with orthographic projection

Next topic

Core

This Page