File: CSMShadowNode.md | Updated: 11/15/2025
An implementation of Cascade Shadow Maps (CSM).
This module can only be used with WebGPURenderer. When using WebGLRenderer, use CSM instead.
CSMShadowNode is an addon, and must be imported explicitly, see Installation#Addons.
import { CSMShadowNode } from 'three/addons/csm/CSMShadowNode.js';
Constructs a new CSM shadow node.
light | The CSM light.
---|---
data | The CSM data. Default is {}.
An array of numbers in the range [0,1] the defines how the mainCSM frustum should be split up.
The scene's camera.
Default is null.
The number of cascades.
Default is 3.
Custom split callback when using mode='custom'.
Whether to fade between cascades or not.
Default is false.
An array of frustums representing the cascades.
The light margin.
Default is 200.
An array of directional lights which cast the shadows for the different cascades. There is one directional light for each cascade.
The main frustum.
Default is null.
The maximum far value.
Default is 100000.
The frustum split mode.
Default is 'practical'.
Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
Overrides: ShadowBaseNode#dispose
Applications must call this method every time they change camera or CSM settings.
Constructor data of CSMShadowNode.
cascades
number | The number of cascades. Default is 3.
---|---
maxFar
number | The maximum far value. Default is 100000.
mode
'practical' | 'uniform' | 'logarithmic' | 'custom' | The frustum split mode. Default is 'practical'.
customSplitsCallback
function | Custom split callback when using mode='custom'.
lightMargin
number | The light margin. Default is 200.