32-Bit Voxel List (VL32)
VL32 is a simple, binary, intermediate file format used in the code of this research project.
Extension: .vl32
Media Type: model/x-vl32
Specification
VL32 can be specified in only a few lines of StructLang:
def u8 = unsigned 8_bit integer
def i32 = big_endian twos_complement 32_bit integer
struct main {
voxel[] voxels
}
struct voxel {
i32 x
i32 y
i32 z
argb32 color
}
struct argb32 {
u8 alpha
u8 red
u8 green
u8 blue
}
Voxels with a color that has an alpha
of zero are treated as void.
Use Case
VL32 is largely used for benchmarking compression efficiency. Any compression effort should yield significantly higher entropy than this format.
One of the significant advantages is that there doesn't need to be any header information.
When reading, voxels are simply loaded until the EOF is reached.
Also there is no difference in data size between the file encoded on disk and its typical in-memory representation,
such as a std::vector
of voxels.