📄 threejs/Addons/Csm/CSMFrustum

File: CSMFrustum.md | Updated: 11/15/2025


title: CSMFrustum category: Addons layout: docs

CSMFrustum

Represents the frustum of a CSM instance.

Import

CSMFrustum is an addon, and must be imported explicitly, see Installation#Addons.

import { CSMFrustum } from 'three/addons/csm/CSMFrustum.js';

Constructor

new CSMFrustum( data : CSMFrustum~Data )

Constructs a new CSM frustum.

data | The CSM data.
---|---

Properties

.vertices : Object

An object representing the vertices of the near and far plane in view space.

.zNear : number

The zNear value. This value depends on whether the CSM is used with WebGL or WebGPU. Both API use different conventions for their projection matrices.

Methods

.setFromProjectionMatrix( projectionMatrix : Matrix4, maxFar : number ) : Object

Setups this CSM frustum from the given projection matrix and max far value.

projectionMatrix | The projection matrix, usually of the scene's camera.
---|---
maxFar | The maximum far value.

Returns: An object representing the vertices of the near and far plane in view space.

.split( breaks : Array.<number>, target : Array.<CSMFrustum> )

Splits the CSM frustum by the given array. The new CSM frustum are pushed into the given target array.

breaks | An array of numbers in the range [0,1] the defines how the CSM frustum should be split up.
---|---
target | The target array that holds the new CSM frustums.

.toSpace( cameraMatrix : Matrix4, target : CSMFrustum )

Transforms the given target CSM frustum into the different coordinate system defined by the given camera matrix.

cameraMatrix | The matrix that defines the new coordinate system.
---|---
target | The CSM to convert.

Type Definitions

.Data

Constructor data of CSMFrustum.

webGL
boolean | Whether this CSM frustum is used with WebGL or WebGPU.
---|---
projectionMatrix
Matrix4 | A projection matrix usually of the scene's camera.
maxFar
number | The maximum far value.

Source

examples/jsm/csm/CSMFrustum.js