pub fn get_sprite_instances<'a, I: 'a>(
    lod_levels: &'a mut [I; 5],
    set_instance: impl Fn(&mut I, SpriteInstance, Vec3<i32>),
    blocks: impl Iterator<Item = (Vec3<f32>, Block)>,
    to_wpos: impl FnMut(Vec3<f32>) -> Vec3<i32>,
    light_map: impl FnMut(Vec3<i32>) -> f32,
    glow_map: impl FnMut(Vec3<i32>) -> f32,
    sprite_data: &HashMap<(SpriteKind, usize, usize), [SpriteData; 5]>,
    sprite_config: &SpriteSpec
)