Skip to main content

Class: MultiCamera

Defined in: core/CameraExtensions.ts:547

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:555

Create a new MultiCamera.

Parameters

options

MultiCameraOptions = {}

Configuration options

Returns

MultiCamera

Accessors

activeCamera

Get Signature

get activeCamera(): CameraEntry

Defined in: core/CameraExtensions.ts:587

Get the active camera entry.

Returns

CameraEntry


activeIndex

Get Signature

get activeIndex(): number

Defined in: core/CameraExtensions.ts:580

Get the active camera index.

Returns

number


cameras

Get Signature

get cameras(): readonly CameraEntry[]

Defined in: core/CameraExtensions.ts:566

Get all camera entries.

Returns

readonly CameraEntry[]


count

Get Signature

get count(): number

Defined in: core/CameraExtensions.ts:573

Get the number of cameras.

Returns

number

Methods

addCamera()

addCamera(camera, viewport, label?): number

Defined in: core/CameraExtensions.ts:598

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:859

Clear all cameras.

Returns

this

this for chaining


getCamera()

getCamera(index): CameraEntry

Defined in: core/CameraExtensions.ts:673

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:682

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:690

Get all enabled cameras.

Returns

CameraEntry[]

Array of enabled camera entries


removeCamera()

removeCamera(index): boolean

Defined in: core/CameraExtensions.ts:618

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:804

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:635

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:648

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:700

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:734

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:780

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:716

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:661

Update a camera's viewport.

Parameters

index

number

Index of camera

viewport

Partial<CameraViewport>

New viewport settings

Returns

this

this for chaining


update()

update(dt): void

Defined in: core/CameraExtensions.ts:847

Update all cameras that support animation.

Parameters

dt

number

Delta time in seconds

Returns

void