跳到主要内容

读取 VFP 文件

VoxelKit Reader 是 Voxel Format Package(VFP)1.3 的只读 Python SDK。它的任务很明确:安全打开一个 VFP 文件、读取权威体素数据、验证完整性,并导出为其他消费端可用的格式。它不承担模型编辑、缓存构建或 VFP 编译职责。

适用场景

  • 资产库在列表页显示网格大小、文件体积与是否内嵌 GLB 预览。
  • 服务端在接收用户上传的 VFP 后执行完整性校验。
  • 离线任务把可信 VFP 导出为 PixForge JSON 或 MagicaVoxel VOX。
  • Web 服务提取已经存在的 GLB 预览,而不在请求时生成网格。

最小读取流程

from vfp_reader import VfpError, VfpReader

try:
reader = VfpReader.open("assets/robot.vfp")
info = reader.inspect()
report = reader.validate_source()
except VfpError as error:
raise RuntimeError(f"拒绝损坏或不兼容的模型:{error}") from error

print(info["gridSize"])
print(report["solidVoxelCount"])

open() 验证 VFP 容器、Footer 和目录;inspect() 不展开体素;validate_source() 才读取 PAL0、全部 VOX0 并重算 sourceHash。生产代码应在任何依赖模型内容的操作前调用后者。

公开能力

需求API 或命令是否读取完整体素
快速显示文件信息inspect() / info
读取描述信息manifest()
读取颜色定义palette()
恢复线性体素缓冲voxels()
验证权威数据validate_source() / verify-source
导出 JSONexport_json() / to-json
导出 VOXto_vox() / to-vox
提取现有预览extract_glb() / extract-glb否,仅 PRVW

必须理解的边界

VFP 的权威数据是 PAL0VOX0PMSHRND0ANM0VBUFPRVW 都是可选派生内容。Reader 可以报告或提取其中某些内容,但不会以缓存替代权威数据,也不会根据缓存“补全”损坏的模型。

本仓库只提供读取端能力。JSON/VOX 到 VFP 的编译、VFP 写入、缓存重建、贪心网格、ArkGraphics Geometry 创建和编辑器交互,均属于 VoxelKit Compiler 或上层应用。

推荐阅读路径

  1. 安装第一个读取示例验证环境。
  2. 服务端接入前阅读校验模型文件处理异常文件
  3. 集成时按API 总览查询公开接口。
  4. 自动化任务阅读命令行工具批量校验目录