You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MagicaVoxel .vox文件格式中对象世界坐标存储位置及提取方法

提取.vox文件多模型世界坐标的方案

你参考的基础.vox格式规范仅覆盖了单模型的体素数据结构,多模型场景的位置信息存储在后续版本新增的场景节点块中,具体提取逻辑如下:


具体操作步骤

  • 第一步:完整解析MAIN主块下的所有子块,除了你已经读取的SIZE(模型尺寸)、XYZI(体素局部坐标)块外,重点提取三类场景节点块:nTRN(变换节点)、nGRP(组节点)、nSHP(形状节点),所有节点块都自带唯一ID,先按ID建立全局索引字典方便关联查询。
  • 第二步:读取nTRN节点的属性字段,其中_t属性存储的就是对应节点的世界空间偏移坐标,值为三个空格分隔的整数,分别对应x/y/z三个轴向的偏移量。如果需要同时解析旋转属性,可以读取_r字段的编码值,仅提取位置可忽略该字段。
  • 第三步:关联变换节点和对应体素模型:nTRN的子节点指向nGRP或nSHP,nSHP的子节点直接关联对应SIZE/XYZI块的模型ID,将模型ID和对应的nTRN的_t偏移量绑定,即可获得单个模型的世界空间原点坐标。
  • 第四步:单模型下所有体素的局部坐标加上该模型的世界原点偏移量,即可计算得到每个体素的世界空间坐标。

注意事项

  • 若计算得到的坐标和MagicaVoxel编辑器内显示的位置不匹配,注意检查轴向差异:MagicaVoxel默认y轴为向上轴向,部分3D引擎默认z轴向上,需自行做轴向映射转换。
  • 若场景存在嵌套组,需要逐层累加父级nTRN节点的偏移量,才能得到子模型的最终世界坐标。

内容的提问来源于stack exchange,提问作者capslpop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:54:03