luft/render/lighting.lisp
One inspectable environment light, packed into raw per-frame GPU lanes.
Return a texel-stable orthographic world-to-shadow transform.
The first two rows map the square light plane to clip [-1,1]. The third maps
the signed light depth around center to [0,1]. center is snapped in the light
plane so camera translation cannot slide a shadow edge by a fraction of a
texel.
Return light's nine vec4 lanes for the frame uniform ABI.
Resolution of LUFT's single sun-shadow map.
One inspectable environment light, packed into raw per-frame GPU lanes.
(current class &rest initargs)(vector)(x y z)(light center)Return a texel-stable orthographic world-to-shadow transform. The first two rows map the square light plane to clip [-1,1]. The third maps the signed light depth around CENTER to [0,1]. CENTER is snapped in the light plane so camera translation cannot slide a shadow edge by a fraction of a texel.
(vector scale)(left right)Division of two represented quantities.
Multiplication and scalar scaling.
(left right)Subtraction or unary negation.
(light center &optional (exposure 1.0f0))
Lighting has identity at the frame boundary. The shader sees only the dense lanes packed from this object once per frame; fragments do not carry objects or dispatch through the lighting vocabulary.