diff --git a/doc/specs/region_file_v2_spec.md b/doc/specs/region_file_spec.md similarity index 100% rename from doc/specs/region_file_v2_spec.md rename to doc/specs/region_file_spec.md diff --git a/doc/specs/region_voxels_chunk_spec.md b/doc/specs/region_voxels_chunk_spec.md new file mode 100644 index 00000000..7467944c --- /dev/null +++ b/doc/specs/region_voxels_chunk_spec.md @@ -0,0 +1,26 @@ +# Voxels Chunk (version 1) + +Voxel regions layer chunk structure. + +Values are separated for extRLE8 compression efficiency. + +File format BNF (RFC 5234): + +```bnf +chunk = (65536*byte) block indices (most significant bytes) + (65536*byte) block indices (least significant bytes) + (65536*byte) block states (most significant bytes) + (65536*byte) block states (least significant bytes) + +byte = %x00-FF 8 bit unsigned integer +``` + +65536 is number of voxels per chunk (16\*256\*16) + +## Block state + +Block state is encoded in 16 bits: +- 0-2 bits (3) - block rotation index +- 3-5 bits (3) - segment block bits +- 6-7 bits (2) - reserved +- 8-15 bits (8) - user bits