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.