SuperAPI AI 工具集

bevy-voxel-data

通用与其它

查看项目

更新于 10-15 17:33

技能介绍

用途:在 Bevy 0.19 中组织体素方块数据。适用于需要用文本格式定义可模组方块目录、为网格化构建以 BlockId 快速查表的运行时调色板、把多张方块纹理合入单图集以共享材质、切换到 KTX2 压缩纹理,以及选择区块存储格式与优化程序化世界生成的场景。

主要能力:以 RON(assets/blocks.ron)定义方块,id 是不可变的序列化标识,name 仅作展示可变更;核心 Rust 类型中 BlockCatalog 为 Bevy Asset,Palette 为 Resource,BlockId 为 u16。构建调色板时校验稳定 ID 唯一性、遍历目录、在 AtlasIndex 中查找各面路径并分配密集的运行时 BlockId。图集绑定到 StandardMaterial.base_color_texture,网格化时按 tile_x = tile_index % atlas_cols 计算逐顶点 UV。主题参考涵盖 RON schema、palette、KTX2 图集、图集绑定、存储格式(扁平数组、RLE、调色板压缩、混合)、程序化生成(噪声上采样、生物群系共享、极值边界、缓存)与生态调研。

使用方式:先在 RON 中定义方块(如 core:air、core:grass、core:stone),再实现 BlockCatalog 与 Palette,接着构建调色板并绑定图集,最后在网格化阶段消费 face_tiles。

限制与注意事项:运行时 BlockId 不是持久标识,需持久化不可变的命名空间 ID 并在加载时映射到当前调色板;KTX2 为可选特性,裁剪 WASM 构建需显式添加 ktx2 与 zstd,桌面用 BC7、移动端用 ETC2/ASTC;mip 级别 ≥1 时需在每块贴图周围加 2 像素内边距以免纹理渗色;半透明方块需独立绘制调用并使用 AlphaMode::Blend 与独立网格批次;发布构建不应在运行时烘焙图集。相关技能包括 bevy-voxel-pipeline、bevy-voxel-runtime、bevy-save-load、bevy-custom-assets、bevy-pbr-materials。具体费用与平台支持暂未提供。