• Packages a flat array of 2D UV coordinates into a Float32Array for GPU upload.

    Stored uncompressed (RG32F) so tiling textures (UVs outside [0, 1]) round-trip through the GPU intact — the shader applies a per-fragment fract() before transforming into the per-mesh atlas sub-rect, which gives correct wrap-around for tiled materials without losing the integer part to a quantisation clamp.

    Memory cost: 8 bytes/vertex (vs 4 bytes for the previous RG16UI form). For any vertex-heavy model the position+normal data dominates anyway.

    Pass-through if the input is already a Float32Array; otherwise copies to one.

    Parameters

    Returns Float32Array