Class: Viewport
Experimental
A scissored region of the canvas with its own scene and camera. Create via the render root.
Constructors
Constructor
new Viewport(host, options?): Viewport;Experimental
Parameters
| Parameter | Type |
|---|---|
host | ViewportHost |
options | ViewportOptions |
Returns
Viewport
Properties
| Property | Modifier | Type | Default value | Description |
|---|---|---|---|---|
background | public | RGBA | null | undefined | Experimental |
clearDepth | public | boolean | undefined | Experimental |
fit | readonly | boolean | undefined | Experimental |
id | readonly | number | undefined | Experimental |
kind | readonly | ViewportKind | undefined | Experimental |
name | readonly | string | undefined | Experimental |
onOrderChange | public | (() => void) | null | null | Experimental Set by the root so it can re-sort when order changes. |
projector | public | | ViewportProjector | null | undefined | undefined | Experimental 2D only: the 2.5D view drawing this viewport (see ViewportProjector), if any. |
scene | readonly | Scene<Object3DEventMap> | undefined | Experimental |
size | readonly | ViewportSize | undefined | Experimental Size handed to primitives (render-area size in CSS px + DPR). Mutated in place. |
visible | public | boolean | true | Experimental Draw only when true. |
Accessors
camera
Get Signature
get camera(): OrthographicCamera | PerspectiveCamera;Experimental
The camera: orthographic for 2D; perspective or orthographic for 3D (see setProjection).
Returns
OrthographicCamera | PerspectiveCamera
clip
Get Signature
get clip(): boolean | Readonly<ViewportRect>;Experimental
Returns
boolean | Readonly<ViewportRect>
disposed
Get Signature
get disposed(): boolean;Experimental
Returns
boolean
order
Get Signature
get order(): number;Experimental
Returns
number
Set Signature
set order(value): void;Experimental
Parameters
| Parameter | Type |
|---|---|
value | number |
Returns
void
primitives
Get Signature
get primitives(): ReadonlySet<Primitive<unknown>>;Experimental
Registered primitives (read-only view).
Returns
ReadonlySet<Primitive<unknown>>
rect
Get Signature
get rect(): Readonly<ViewportRect>;Experimental
Rect in CSS px, top-left origin of the container. Treat as read-only; use setRect.
Returns
Readonly<ViewportRect>
renderArea
Get Signature
get renderArea(): Readonly<ViewportRect>;Experimental
Rect GL renders into (top-left origin).
Returns
Readonly<ViewportRect>
scissor
Get Signature
get scissor(): Readonly<ViewportRect> | null;Experimental
Scissor rect (top-left origin), or null when unclipped.
Returns
Readonly<ViewportRect> | null
Methods
add()
add<T>(primitive): Primitive<T>;Experimental
Add a primitive: its object joins the scene and its viewport uniforms are kept in sync.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
primitive | Primitive<T> |
Returns
Primitive<T>
contains()
contains(px, py): boolean;Experimental
Whether a container-space point lies inside the rect.
Parameters
| Parameter | Type |
|---|---|
px | number |
py | number |
Returns
boolean
dispose()
dispose(): void;Experimental
Dispose registered primitives, then any geometry/material still attached to the scene (objects added directly via scene access). Textures are owned by the resource manager or by the caller.
Returns
void
layout()
layout(): void;Experimental
Recompute render area, scissor, camera, and primitive viewport uniforms. Called by the root on canvas resize / DPR change and by setRect.
Returns
void
remove()
remove<T>(primitive, options?): void;Experimental
Remove a primitive from this viewport, optionally disposing it.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
primitive | Primitive<T> |
options | { dispose?: boolean; } |
options.dispose? | boolean |
Returns
void
setClip()
setClip(clip): void;Experimental
Parameters
| Parameter | Type |
|---|---|
clip | boolean | ViewportRect |
Returns
void
setOrthoHalfHeight()
setOrthoHalfHeight(halfHeight): void;Experimental
Set the orthographic half-height of a 3D orthographic viewport (zoom).
Parameters
| Parameter | Type |
|---|---|
halfHeight | number |
Returns
void
setProjection()
setProjection(projection): void;Experimental
3D only: switch between a perspective and an orthographic camera (M6: a scene's camera.projection.type). The camera object is replaced; its pose (position, orientation, up) carries over. No-op for 2D viewports or when the projection is unchanged.
Parameters
| Parameter | Type |
|---|---|
projection | "perspective" | "orthographic" |
Returns
void
setRect()
setRect(rect): void;Experimental
Parameters
| Parameter | Type |
|---|---|
rect | Readonly<ViewportRect> |
Returns
void
toWorld()
toWorld(
px,
py,
out?
): object;Experimental
Convert container CSS px (top-left origin, e.g. from a pointer event) to 2D world coordinates (bottom-left origin of this viewport's rect).
Parameters
| Parameter | Type |
|---|---|
px | number |
py | number |
out | { x: number; y: number; } |
out.x | number |
out.y | number |
Returns
object
| Name | Type |
|---|---|
x | number |
y | number |