Skip to main content

Class: CSMRenderer

Constructors

constructor

new CSMRenderer(config?): CSMRenderer

Parameters

NameType
configPartial<CSMConfig>

Returns

CSMRenderer

Accessors

numCascades

get numCascades(): number

Returns

number


shadowBias

get shadowBias(): number

Returns

number


skipShadowObjects

get skipShadowObjects(): readonly Object3D<Object3DEventMap>[]

The skipShadow-flagged objects every depth consumer must hide. The local shadow atlas hides the same list, so casters can never disagree between the sun's maps and a torch's.

Returns

readonly Object3D<Object3DEventMap>[]

Methods

addSkipShadowObject

addSkipShadowObject(object): void

Parameters

NameType
objectObject3D<Object3DEventMap>

Returns

void


attachShadowLedger

attachShadowLedger(ledger, nearUnits?, farUnits?): void

Share the per-frame shadow budget with the local light atlas. The near cascade is priority 1 and only records its spend; far cascades ask for a grant where the hard-coded one-far-per-frame rule used to be the only throttle. With no ledger attached (or no local lights active — the ledger grants unconditionally then), behavior is exactly today's.

Parameters

NameTypeDefault value
ledgerCSMShadowLedgerundefined
nearUnitsnumber4
farUnitsnumber6

Returns

void


dispose

dispose(): void

Returns

void


getCascadeMatrix

getCascadeMatrix(index): Matrix4

Parameters

NameType
indexnumber

Returns

Matrix4


getCascadeSplit

getCascadeSplit(index): number

Parameters

NameType
indexnumber

Returns

number


getDebugState

getDebugState(): Object

Returns

Object

NameType
cascadeDirtyboolean[]
cascadeNeedsRenderboolean[]
currentShadowStrengthnumber
isCameraStillboolean
lastFrameLightSwingnumber

getShadowMap

getShadowMap(index): Texture<unknown>

Parameters

NameType
indexnumber

Returns

Texture<unknown>


getUniforms

getUniforms(): Object

Returns

Object

NameType
uCascadeSplitsnumber[]
uNumCascadesnumber
uShadowBiasnumber
uShadowMapsTexture<unknown>[]
uShadowMatricesMatrix4[]
uShadowNormalBiasnumber
uShadowSideFaceBiasScalenumber
uShadowSlopeBiasMinnumber
uShadowSlopeBiasScalenumber
uShadowTopFaceBiasScalenumber

markAllCascadesForRender

markAllCascadesForRender(): void

Returns

void


markCascadesForEntityRender

markCascadesForEntityRender(): void

Returns

void


rebuildSkipShadowCache

rebuildSkipShadowCache(scene): void

Parameters

NameType
sceneScene<Object3DEventMap>

Returns

void


removeSkipShadowObject

removeSkipShadowObject(object): void

Parameters

NameType
objectObject3D<Object3DEventMap>

Returns

void


render

render(renderer, scene, entities?, maxEntityShadowDistance?, instancePools?, poolBounds?): void

Parameters

NameTypeDefault value
rendererWebGLRendererundefined
sceneScene<Object3DEventMap>undefined
entities?Object3D<Object3DEventMap>[]undefined
maxEntityShadowDistancenumberENTITY_SHADOW_DISTANCE
instancePools?Group<Object3DEventMap>[]undefined
poolBounds?readonly Box3[]undefined

Returns

void


setLightDirection

setLightDirection(direction): void

Parameters

NameType
directionVector3

Returns

void


update

update(mainCamera, sunDirection, playerPosition?, shadowStrength?): void

Parameters

NameTypeDefault value
mainCameraCameraundefined
sunDirectionVector3undefined
playerPosition?Vector3undefined
shadowStrengthnumber1

Returns

void