0x2451a0b
Bool = false Unknown bool. Purpose not yet identified.
The map feature that turns on dynamic lights. It is a component of the map's
MapContainer, in its components list.
Light sources always register themselves with the renderer. Without this component they are never drawn: it is the only thing that creates the light grid, and the only thing that switches the map's shaders to their dynamic-light variant.
Light sources. Four classes feed the same light lists:
| Source | Kind | Carried by |
|---|---|---|
| MapDynamicPointLight | point | a placed map object |
| MapDynamicSpotlight | spot | a placed map object |
| ParticlePointLightInfo | point | a particle system |
| VfxLightComponent | point | a shimmer emitter |
Each frame the client keeps the lights that are inside the camera frustum, fits a grid of cells around them, and writes into each cell the list of lights that reach it. A pixel finds its cell from its world position and runs only that cell's lights. The grid is configured by the embedded ClusteredLightingInfo.
What is lit. Environment geometry and characters, with or without PBR materials.
Characters here means every skinned mesh: champions, minions, monsters and structures.
Particles are not lit, with one exception: materials built on the DefaultParticleLit
shader.
Brightness. A point light falls off linearly, 1 - distance / radius, and reaches
zero at its radius. On a non-PBR surface the light adds
albedo * color * N.L * falloff, and the result is clamped. Only PBR-style shaders
multiply the colour by the light's HdrScale.
Masks. Every light carries two bitmasks, and a surface takes the light only when both match:
0x1 is environment, bit
0x2 is characters.Light types. The type of a light selects how it is drawn:
| Value | Meaning |
|---|---|
0 |
Stationary. The light is multiplied by a baked mask, so it only shows where the map's baked data lets it through. |
1 |
Dynamic, no shadow. |
2 |
Dynamic with a shadow map, when the shadow quality setting allows it. Otherwise it is drawn like 1. For point lights only the first visible light of this type gets a shadow map. |
A light whose colour is black is dropped before it reaches the renderer.
Bool = false Unknown bool. Purpose not yet identified.
Bool = false Unknown bool. Purpose not yet identified.
{
"MaxNumClustersX": 32,
"MaxNumClustersY": 2,
"MaxNumClustersZ": 32,
"MinClusterSize": [100, 100, 100],
"0x8a0d61c2": 8192
}The size and resolution of the light grid. See ClusteredLightingInfo.
Bool = true Lets the map's environment and character shaders use their dynamic-light variant. When
false the component still loads and builds its grid, but no shader reads it, so no
light is drawn.