The two shadow numbers a backend needs per frame (§69) — the structural half
of @fourjs/scene's DirectionalLightShadow.
mapSize is here rather than derived because a backend has to allocate a
surface of that size before it can render into one, and bias/normalBias
because both are consumed by the fragment stage that samples it. Everything
else on §69's settings object shapes the matrix, which arrives already
multiplied out.
The two shadow numbers a backend needs per frame (§69) — the structural half of
@fourjs/scene'sDirectionalLightShadow.mapSizeis here rather than derived because a backend has to allocate a surface of that size before it can render into one, andbias/normalBiasbecause both are consumed by the fragment stage that samples it. Everything else on §69's settings object shapes the matrix, which arrives already multiplied out.