Skip to main content

Class: MultiCamera

Defined in: 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: core/CameraExtensions.ts:570

Create a new MultiCamera.

Parameters

options

MultiCameraOptions = {}

Configuration options

Returns

MultiCamera

Accessors

activeCamera

Get Signature

get activeCamera(): CameraEntry

Defined in: core/CameraExtensions.ts:602

Get the active camera entry.

Returns

CameraEntry


activeIndex

Get Signature

get activeIndex(): number

Defined in: core/CameraExtensions.ts:595

Get the active camera index.

Returns

number


cameras

Get Signature

get cameras(): readonly CameraEntry[]

Defined in: core/CameraExtensions.ts:581

Get all camera entries.

Returns

readonly CameraEntry[]


count

Get Signature

get count(): number

Defined in: core/CameraExtensions.ts:588

Get the number of cameras.

Returns

number

Methods

addCamera()

addCamera(camera, viewport, label?): number

Defined in: 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: core/CameraExtensions.ts:986

Clear all cameras.

Returns

this

this for chaining


getCamera()

getCamera(index): CameraEntry

Defined in: 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: 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: core/CameraExtensions.ts:727

Get all enabled cameras.

Returns

CameraEntry[]

Array of enabled camera entries


removeCamera()

removeCamera(index): boolean

Defined in: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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