Skip to main content

Class: MultiCamera

Defined in: core/CameraExtensions.ts:554

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

Create a new MultiCamera.

Parameters

options

MultiCameraOptions = {}

Configuration options

Returns

MultiCamera

Accessors

activeCamera

Get Signature

get activeCamera(): CameraEntry

Defined in: core/CameraExtensions.ts:594

Get the active camera entry.

Returns

CameraEntry


activeIndex

Get Signature

get activeIndex(): number

Defined in: core/CameraExtensions.ts:587

Get the active camera index.

Returns

number


cameras

Get Signature

get cameras(): readonly CameraEntry[]

Defined in: core/CameraExtensions.ts:573

Get all camera entries.

Returns

readonly CameraEntry[]


count

Get Signature

get count(): number

Defined in: core/CameraExtensions.ts:580

Get the number of cameras.

Returns

number

Methods

addCamera()

addCamera(camera, viewport, label?): number

Defined in: core/CameraExtensions.ts:605

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

Clear all cameras.

Returns

this

this for chaining


getCamera()

getCamera(index): CameraEntry

Defined in: core/CameraExtensions.ts:680

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

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

Get all enabled cameras.

Returns

CameraEntry[]

Array of enabled camera entries


removeCamera()

removeCamera(index): boolean

Defined in: core/CameraExtensions.ts:625

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

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

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

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

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

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

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

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

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

Update all cameras that support animation.

Parameters

dt

number

Delta time in seconds

Returns

void