From 3d3679c8b1858bfe5e89364e019f23eefc73907d Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 4 Sep 2024 00:10:39 +0300 Subject: [PATCH] add voxel regions layer chunk structure specification --- ...on_file_v2_spec.md => region_file_spec.md} | 0 doc/specs/region_voxels_chunk_spec.md | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+) rename doc/specs/{region_file_v2_spec.md => region_file_spec.md} (100%) create mode 100644 doc/specs/region_voxels_chunk_spec.md 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