Interface: LocalLightsOptions
Properties
analyticRadius
• analyticRadius: number
Blocks from the camera within which lights become analytic.
csmFarCascadeUnits
• csmFarCascadeUnits: number
Ledger cost of one CSM far cascade, in face units.
csmNearCascadeUnits
• csmNearCascadeUnits: number
Ledger cost of the CSM near cascade, in face units.
fadingRowReserve
• fadingRowReserve: number
Data rows kept free for lights fading out of the selection, so the selection never has to cut one off mid-fade.
fluidSpecularStrength
• fluidSpecularStrength: number
Strength of local specular on fluids; 0 disables.
gridCellSize
• gridCellSize: number
Grid cell size in blocks.
gridDims
• gridDims: [number, number, number]
Grid cells per axis [x, y, z]; the window scrolls with the camera.
highResolutionHysteresis
• highResolutionHysteresis: number
Fractional band around highResolutionPixels the gate must cross to
flip, so an adaptive render scale hovering at the threshold does not
toggle it every step.
highResolutionLightsPerCell
• highResolutionLightsPerCell: number
highResolutionPixels
• highResolutionPixels: number
Drawing-buffer pixels at and above which a cell keeps at most
highResolutionLightsPerCell steady lights: the per-fragment loop is
paid per pixel, so large buffers trade light count for frame time.
localShadowBias
• localShadowBias: number
Constant occluder-side depth bias in blocks (linear light space).
localShadowNormalBiasTexels
• localShadowNormalBiasTexels: number
Receiver offset along the surface normal, in shadow texels.
localShadowPcfRadius
• localShadowPcfRadius: number
PCF tap spread, in shadow texels.
localShadowStrength
• localShadowStrength: number
1 = an occluded fragment loses the light entirely.
maskKnee
• maskKnee: number
Flood-mask knee: flood level (0..1) at which masked lights reach full.
maxClusteredLights
• maxClusteredLights: number
Lights the clustered layer may select per pass; capped at 255.
maxLightsPerCell
• maxLightsPerCell: number
Grid slots filled per cell; the shader loop is compiled for 8.
maxRegisteredLights
• maxRegisteredLights: number
Pool capacity for registered lights (static emitters + dynamic sources).
maxSectionScansPerFrame
• maxSectionScansPerFrame: number
Sections scanned for emitters per frame at most.
maxShadowedLights
• maxShadowedLights: number
Shadowed local lights at once; each owns a fixed atlas region.
qualityTier
• qualityTier: LightQualityTier
Initial quality tier.
selectionHysteresis
• selectionHysteresis: number
Multiplier a light's score gets while selected, against churn.
shadowAtlasSize
• shadowAtlasSize: number
Edge length of the shared depth atlas, in pixels.
shadowEvictionHysteresis
• shadowEvictionHysteresis: Object
A challenger light must out-score a shadow holder by ratio for
frames consecutive frames before evicting it from the atlas.
Type declaration
| Name | Type |
|---|---|
frames | number |
ratio | number |
shadowFadeMs
• shadowFadeMs: number
How long a light's shadow takes to fade in or out, in ms.
shadowLedgerUnitsPerFrame
• shadowLedgerUnitsPerFrame: number
Face units the shadow ledger may spend per frame (CSM + local).
shadowSlotSize
• shadowSlotSize: number
Edge length of one atlas cell (one cube face render), in pixels.
slotFadeMs
• slotFadeMs: number
How long a light takes to fade into or out of a cell, in ms.
temporalStability
• temporalStability: boolean
Temporal stability of the clustered layer (default on): cells keep the
lights that matter most to them rather than the ones nearest the
camera, every change of a cell's lights fades over slotFadeMs, the
window rim fades continuously, and invalidated shadow faces keep
sampling their last map until the re-render lands. Off is the legacy
frame, kept only for A/B captures.
windowFadeBlocks
• windowFadeBlocks: number
Width of the window-rim fade, in blocks.