pub fn build_light_data(
pt_lights: &[PointLight],
spot_lights: &[SpotLight],
rect_lights: &[RectAreaLight],
) -> LightDataExpand description
Packs point, spot, and rect area lights into the GpuLight storage buffer and assigns their side-table slots. All three share the MAX_LOCAL_LIGHTS budget (not the 8-entry LightUniforms array); extras past the cap are dropped with a warning. Unused fields stay at their neutral GpuLight::ZERO values, so a point light carries no cone, shadow, or area data.