Skip to content

Documentation / scene / ShadowMapper

Class: ShadowMapper ​

Defined in: libs/scene/src/shadow/shadowmapper.ts:114

The shadow map generator

Extends ​

  • Disposable

Constructors ​

Constructor ​

new ShadowMapper(light): ShadowMapper

Defined in: libs/scene/src/shadow/shadowmapper.ts:189

Creates an instance of ShadowMapper

Parameters ​

light ​

PunctualLight

The light that is used to generate shadow map

Returns ​

ShadowMapper

Overrides ​

Disposable.constructor

Accessors ​

disposed ​

Get Signature ​

get disposed(): boolean

Defined in: libs/base/dist/index.d.ts:6107

Returns ​

boolean

Inherited from ​

Disposable.disposed


light ​

Get Signature ​

get light(): PunctualLight

Defined in: libs/scene/src/shadow/shadowmapper.ts:228

The light that is used to generate shadow map

Returns ​

PunctualLight


shadowMapSize ​

Get Signature ​

get shadowMapSize(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:232

Size of the shadow map

Returns ​

number

Set Signature ​

set shadowMapSize(num): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:235

Parameters ​
num ​

number

Returns ​

void


shadowRegion ​

Get Signature ​

get shadowRegion(): ShadowRegion

Defined in: libs/scene/src/shadow/shadowmapper.ts:246

Shadow region for directional light

Returns ​

ShadowRegion


shadowDistance ​

Get Signature ​

get shadowDistance(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:284

Maximum distance from the camera, shadow will not be rendered beyond this range

Returns ​

number

Set Signature ​

set shadowDistance(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:287

Parameters ​
val ​

number

Returns ​

void


numShadowCascades ​

Get Signature ​

get numShadowCascades(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:291

Count of the cascades, The maximum value is 4

Returns ​

number

Set Signature ​

set numShadowCascades(num): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:294

Parameters ​
num ​

number

Returns ​

void


splitLambda ​

Get Signature ​

get splitLambda(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:309

The split lambda for cascaded shadow mapping

Returns ​

number

Set Signature ​

set splitLambda(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:312

Parameters ​
val ​

number

Returns ​

void


depthBias ​

Get Signature ​

get depthBias(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:318

Depth bias for the shadow map

Returns ​

number

Set Signature ​

set depthBias(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:321

Parameters ​
val ​

number

Returns ​

void


normalBias ​

Get Signature ​

get normalBias(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:338

Normal offset bias, in shadow map texels.

Remarks ​

Before sampling, the receiver is moved along its normal by this many texel widths, scaled by sin(theta) between the normal and the light so the offset is zero facing the light and largest at grazing incidence. This is what removes grazing-angle self-shadowing acne; depthBias alone cannot, because the depth error over one texel grows without bound as the surface turns away from the light.

Useful values are roughly 1 to 4. Too little leaves acne on curved surfaces near the terminator; too much detaches contact shadows from thin geometry.

Returns ​

number

Set Signature ​

set normalBias(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:341

Parameters ​
val ​

number

Returns ​

void


nearClip ​

Get Signature ​

get nearClip(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:345

Near clip plane

Returns ​

number

Set Signature ​

set nearClip(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:348

Parameters ​
val ​

number

Returns ​

void


shadowStrength ​

Get Signature ​

get shadowStrength(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:354

Shadow strength, 0 means no shadowing and 1 means full shadowing

Returns ​

number

Set Signature ​

set shadowStrength(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:357

Parameters ​
val ​

number

Returns ​

void


mode ​

Get Signature ​

get mode(): ShadowMode

Defined in: libs/scene/src/shadow/shadowmapper.ts:361

Shadow map mode

Returns ​

ShadowMode

Set Signature ​

set mode(mode): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:364

Parameters ​
mode ​

ShadowMode

Returns ​

void


pdSampleCount ​

Get Signature ​

get pdSampleCount(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:409

Sample count for poisson disc PCF

Returns ​

number

Set Signature ​

set pdSampleCount(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:412

Parameters ​
val ​

number

Returns ​

void


pdSampleRadius ​

Get Signature ​

get pdSampleRadius(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:423

Radius for poisson disc PCF

Returns ​

number

Set Signature ​

set pdSampleRadius(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:426

Parameters ​
val ​

number

Returns ​

void


pcfKernelSize ​

Get Signature ​

get pcfKernelSize(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:434

Kernel size for optimized PCF

Returns ​

number

Set Signature ​

set pcfKernelSize(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:437

Parameters ​
val ​

number

Returns ​

void


pcssLightRadius ​

Get Signature ​

get pcssLightRadius(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:448

Light radius for PCSS shadow, measured in shadow-map texels

Returns ​

number

Set Signature ​

set pcssLightRadius(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:451

Parameters ​
val ​

number

Returns ​

void


domLayerDistance ​

Get Signature ​

get domLayerDistance(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:471

Depth spanned by the deep opacity map's layers, in world units along the light direction. Only meaningful when the shadow mode is dom.

Remarks ​

Set it to roughly the thickness of the hair. Too small and everything past the outer strands saturates the last layer, which is a hard shadow again; too large and all three layers fall inside the first strand, leaving the interior unshadowed.

Returns ​

number

Set Signature ​

set domLayerDistance(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:474

Parameters ​
val ​

number

Returns ​

void


domDensity ​

Get Signature ​

get domDensity(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:491

How strongly accumulated hair coverage attenuates light. Only meaningful when the shadow mode is dom.

Remarks ​

Raise it to darken the interior of a groom without moving the layers.

Returns ​

number

Set Signature ​

set domDensity(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:494

Parameters ​
val ​

number

Returns ​

void


domFilterSize ​

Get Signature ​

get domFilterSize(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:514

Width of the deep opacity map's sampling kernel in texels: 1, 3, 5 or 7. Only meaningful when the shadow mode is dom.

Remarks ​

The technique's own gradation runs along the light rather than across the map, so without a kernel the silhouette of a groom is as hard an edge as an unfiltered shadow map gives. This is what softens it, at one layer lookup per tap. Defaults to 5.

Returns ​

number

Set Signature ​

set domFilterSize(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:517

Parameters ​
val ​

number

Returns ​

void


pcssBlockerSampleCount ​

Get Signature ​

get pcssBlockerSampleCount(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:528

Blocker search sample count for PCSS shadow

Returns ​

number

Set Signature ​

set pcssBlockerSampleCount(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:531

Parameters ​
val ​

number

Returns ​

void


pcssFilterSampleCount ​

Get Signature ​

get pcssFilterSampleCount(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:542

Filter sample count for PCSS shadow

Returns ​

number

Set Signature ​

set pcssFilterSampleCount(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:545

Parameters ​
val ​

number

Returns ​

void


pcssMaxFilterRadius ​

Get Signature ​

get pcssMaxFilterRadius(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:556

Maximum PCSS filter radius, measured in shadow-map texels

Returns ​

number

Set Signature ​

set pcssMaxFilterRadius(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:559

Parameters ​
val ​

number

Returns ​

void


pcssTemporalJitter ​

Get Signature ​

get pcssTemporalJitter(): boolean

Defined in: libs/scene/src/shadow/shadowmapper.ts:570

If true, rotates PCSS sampling pattern over frames for TAA accumulation

Returns ​

boolean

Set Signature ​

set pcssTemporalJitter(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:573

Parameters ​
val ​

boolean

Returns ​

void


vsmBlurKernelSize ​

Get Signature ​

get vsmBlurKernelSize(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:584

Kernel size of VSM

Returns ​

number

Set Signature ​

set vsmBlurKernelSize(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:587

Parameters ​
val ​

number

Returns ​

void


vsmBlurRadius ​

Get Signature ​

get vsmBlurRadius(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:598

Blur radius for VSM

Returns ​

number

Set Signature ​

set vsmBlurRadius(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:601

Parameters ​
val ​

number

Returns ​

void


vsmDarkness ​

Get Signature ​

get vsmDarkness(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:612

Darkness for VSM

Returns ​

number

Set Signature ​

set vsmDarkness(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:615

Parameters ​
val ​

number

Returns ​

void


esmBlur ​

Get Signature ​

get esmBlur(): boolean

Defined in: libs/scene/src/shadow/shadowmapper.ts:623

Whether to enable ESM blur

Returns ​

boolean

Set Signature ​

set esmBlur(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:626

Parameters ​
val ​

boolean

Returns ​

void


esmLogSpace ​

Get Signature ​

get esmLogSpace(): boolean

Defined in: libs/scene/src/shadow/shadowmapper.ts:636

Whether to enable log space ESM blur

Returns ​

boolean

Set Signature ​

set esmLogSpace(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:639

Parameters ​
val ​

boolean

Returns ​

void


esmBlurKernelSize ​

Get Signature ​

get esmBlurKernelSize(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:649

Kernel size for ESM

Returns ​

number

Set Signature ​

set esmBlurKernelSize(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:652

Parameters ​
val ​

number

Returns ​

void


esmBlurRadius ​

Get Signature ​

get esmBlurRadius(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:663

Blur radius for ESM

Returns ​

number

Set Signature ​

set esmBlurRadius(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:666

Parameters ​
val ​

number

Returns ​

void


esmDepthScale ​

Get Signature ​

get esmDepthScale(): number

Defined in: libs/scene/src/shadow/shadowmapper.ts:677

Depth scale for ESM

Returns ​

number

Set Signature ​

set esmDepthScale(val): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:680

Parameters ​
val ​

number

Returns ​

void

Methods ​

on() ​

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:630

IEventTarget.on

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener ​

EventListener<{ dispose: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.on


once() ​

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:634

IEventTarget.once

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener ​

EventListener<{ dispose: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.once


off() ​

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:638

IEventTarget.off

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener? ​

EventListener<{ dispose: []; }>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.off


dispatchEvent() ​

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:642

IEventTarget.dispatchEvent

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

args ​

...object[K]

Returns ​

void

Inherited from ​

Disposable.dispatchEvent


dispose() ​

dispose(): void

Defined in: libs/base/dist/index.d.ts:6108

Returns ​

void

Inherited from ​

Disposable.dispose


applyQualityPreset() ​

applyQualityPreset(preset): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:376

Applies a practical shadow preset for common scenarios.

character-small: higher contact quality and tighter distance for character-centric scenes. outdoor-large: longer distance coverage for open scenes.

Parameters ​

preset ​

ShadowQualityPreset

Returns ​

void


onDispose() ​

protected onDispose(): void

Defined in: libs/scene/src/shadow/shadowmapper.ts:1042

Disposable.onDispose

Returns ​

void

Overrides ​

Disposable.onDispose

Released under the MIT License.