Skip to main content

Class: MultiCamera

Defined in: src/core/CameraExtensions.ts:562

MultiCamera - Manages multiple camera views for split-screen and picture-in-picture effects. Coordinates rendering from multiple cameras to different viewport regions.

Constructors​

Constructor​

new MultiCamera(options): MultiCamera

Defined in: src/core/CameraExtensions.ts:570

Create a new MultiCamera.

Parameters​

options​

MultiCameraOptions = {}

Configuration options

Returns​

MultiCamera

Accessors​

activeCamera​

Get Signature​

get activeCamera(): CameraEntry

Defined in: src/core/CameraExtensions.ts:602

Get the active camera entry.

Returns​

CameraEntry


activeIndex​

Get Signature​

get activeIndex(): number

Defined in: src/core/CameraExtensions.ts:595

Get the active camera index.

Returns​

number


cameras​

Get Signature​

get cameras(): readonly CameraEntry[]

Defined in: src/core/CameraExtensions.ts:581

Get all camera entries.

Returns​

readonly CameraEntry[]


count​

Get Signature​

get count(): number

Defined in: src/core/CameraExtensions.ts:588

Get the number of cameras.

Returns​

number

Methods​

addCamera()​

addCamera(camera, viewport, label?): number

Defined in: src/core/CameraExtensions.ts:613

Add a camera with its viewport.

Parameters​

camera​

Camera instance to add

Camera2D | Camera3D | MovingCamera | ThreeDCamera

viewport​

CameraViewport

Viewport rectangle for this camera

label?​

string

Optional label for identification

Returns​

number

Index of the added camera


clear()​

clear(): this

Defined in: src/core/CameraExtensions.ts:986

Clear all cameras.

Returns​

this

this for chaining


getCamera()​

getCamera(index): CameraEntry

Defined in: src/core/CameraExtensions.ts:710

Get a camera entry by index.

Parameters​

index​

number

Camera index

Returns​

CameraEntry

Camera entry or null if not found


getCameraByLabel()​

getCameraByLabel(label): CameraEntry

Defined in: src/core/CameraExtensions.ts:719

Find a camera by label.

Parameters​

label​

string

Camera label to find

Returns​

CameraEntry

Camera entry or null if not found


getEnabledCameras()​

getEnabledCameras(): CameraEntry[]

Defined in: src/core/CameraExtensions.ts:727

Get all enabled cameras.

Returns​

CameraEntry[]

Array of enabled camera entries


removeCamera()​

removeCamera(index): boolean

Defined in: src/core/CameraExtensions.ts:655

Remove a camera by index.

Parameters​

index​

number

Index of camera to remove

Returns​

boolean

true if camera was removed


render()​

render(renderer, scene, canvasWidth, canvasHeight): void

Defined in: src/core/CameraExtensions.ts:841

Render all enabled cameras to the given renderer. This method manages viewport scissoring for each camera.

Parameters​

renderer​

WebGLRenderer

Three.js WebGLRenderer

scene​

Scene

Three.js Scene to render

canvasWidth​

number

Canvas width in pixels

canvasHeight​

number

Canvas height in pixels

Returns​

void


setActiveCamera()​

setActiveCamera(index): this

Defined in: src/core/CameraExtensions.ts:672

Set the active camera by index.

Parameters​

index​

number

Index of camera to make active

Returns​

this

this for chaining


setCameraEnabled()​

setCameraEnabled(index, enabled): this

Defined in: src/core/CameraExtensions.ts:685

Enable or disable a camera.

Parameters​

index​

number

Index of camera

enabled​

boolean

Whether to enable the camera

Returns​

this

this for chaining


setupHorizontalSplit()​

setupHorizontalSplit(leftCamera, rightCamera): this

Defined in: src/core/CameraExtensions.ts:737

Set up a horizontal split screen (two cameras side by side).

Parameters​

leftCamera​

Camera for left side

Camera2D | Camera3D | MovingCamera | ThreeDCamera

rightCamera​

Camera for right side

Camera2D | Camera3D | MovingCamera | ThreeDCamera

Returns​

this

this for chaining


setupPictureInPicture()​

setupPictureInPicture(mainCamera, pipCamera, pipPosition, pipSize): this

Defined in: src/core/CameraExtensions.ts:771

Set up a picture-in-picture layout.

Parameters​

mainCamera​

Main camera (full screen)

Camera2D | Camera3D | MovingCamera | ThreeDCamera

pipCamera​

Picture-in-picture camera (small overlay)

Camera2D | Camera3D | MovingCamera | ThreeDCamera

pipPosition​

Position of PiP: 'top-left', 'top-right', 'bottom-left', 'bottom-right'

"top-left" | "top-right" | "bottom-left" | "bottom-right"

pipSize​

number = 0.25

Size of PiP as fraction of canvas (default 0.25)

Returns​

this

this for chaining


setupQuadView()​

setupQuadView(cameras): this

Defined in: src/core/CameraExtensions.ts:817

Set up a quad view (four cameras in a grid).

Parameters​

cameras​

[Camera2D | Camera3D | MovingCamera | ThreeDCamera, Camera2D | Camera3D | MovingCamera | ThreeDCamera, Camera2D | Camera3D | MovingCamera | ThreeDCamera, Camera2D | Camera3D | MovingCamera | ThreeDCamera]

Array of four cameras [topLeft, topRight, bottomLeft, bottomRight]

Returns​

this

this for chaining


setupVerticalSplit()​

setupVerticalSplit(topCamera, bottomCamera): this

Defined in: src/core/CameraExtensions.ts:753

Set up a vertical split screen (two cameras stacked).

Parameters​

topCamera​

Camera for top half

Camera2D | Camera3D | MovingCamera | ThreeDCamera

bottomCamera​

Camera for bottom half

Camera2D | Camera3D | MovingCamera | ThreeDCamera

Returns​

this

this for chaining


setViewport()​

setViewport(index, viewport): this

Defined in: src/core/CameraExtensions.ts:698

Update a camera's viewport.

Parameters​

index​

number

Index of camera

viewport​

Partial<CameraViewport>

New viewport settings

Returns​

this

this for chaining


setViewportBorder()​

setViewportBorder(index, style): this

Defined in: src/core/CameraExtensions.ts:637

Update the border style of an existing viewport. Passing null for either field disables that side of the configuration (e.g. setting borderWidth to 0 turns the border off).

Parameters​

index​

number

Camera index

style​

Partial border style; merged into the existing viewport

borderColor?​

string | number

borderWidth?​

number

Returns​

this

this for chaining


update()​

update(dt): void

Defined in: src/core/CameraExtensions.ts:971

Update all cameras that support animation. Advances per-camera animation state (MovingCamera/ThreeDCamera) and runs any frame updaters attached to Camera2D entries so secondary cameras can follow targets the same way scene.camera.frame does.

Parameters​

dt​

number

Delta time in seconds

Returns​

void