Make the 80 yd realtime-shadow range a runtime slider (Options -> Graphics ->
Shadow Distance, 40-200 yd, default 80). Confirmed in-game.
- shadowDistance cvar -> VideoConfig.shadow_distance, clamped to
shadow_core::SHADOW_DISTANCE_RANGE. VideoConfig drops Eq (f32 field).
- shadow_core reads it: the cascade maximum_distance + the caster-collection
reaches. The CascadeShadowConfig is re-fit only when the slider changes (not
per frame, which would defeat the texel snap and crawl every edge).
- Bridged to a benilla-world ShadowDistance resource; global_light packs it into
the free row-19 light lane so the receiver EDGE FADE fades at the cascade's
actual max distance, whatever the slider is set to (terrain _wmo_fog[1].z /
model wmo_fog_params.z). The fixed SHADOW_RANGE consts are gone.
- Options: a deferred slider row (commits on Apply so a drag doesn't re-fit the
cascade + recollect casters every tick).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>