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
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
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
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
Set Signature
set mode(
mode):void
Defined in: libs/scene/src/shadow/shadowmapper.ts:364
Parameters
mode
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
Returns
void
onDispose()
protectedonDispose():void
Defined in: libs/scene/src/shadow/shadowmapper.ts:1042
Disposable.onDispose
Returns
void
Overrides
Disposable.onDispose