跳到主要内容

校验模型文件

完整校验是将 VFP 接入业务系统前的关键步骤。validate_source() 会读取 META 的网格参数、解析 PAL0、恢复所有 VOX0 Chunk,然后使用规范化的网格大小、调色板与线性体素缓冲重算 sourceHash。

from vfp_reader import VfpError, VfpReader

reader = VfpReader.open("upload.vfp")
try:
report = reader.validate_source()
except VfpError as exc:
# 上传记录应保存拒绝原因和原始文件位置。
raise ValueError(f"上传文件未通过校验:{exc}") from exc

print(report)

验证要求新算出的 hash 同时等于 Header 内的二进制 hash 和 META 的十六进制 sourceHash 字段;任何一个不同都会失败。随后 SDK 检查非零体素索引均能在 PAL0 找到颜色条目。

该方法的返回值含 pathgridSizepaletteCountsolidVoxelCountsourceHash。将 hash 作为资产版本身份写入数据库时,仍应由业务层保证同一文件的路径、权限和归属关系。