3D-Front数据集 json说明

主要组成以mesh为一个组成单元

bash 复制代码
  "mesh": [
    {
      "aid": [],
      "jid": "",
      "uid": "12131533353694159/0",
      "xyz": [
        -2.1253,
        0,
        1.3118,
        -4.1093,
        0,
        3.1478,
        -4.1093,
        0,
        1.3118,
        -4.1093,
        0,
        3.1478,
        -2.1253,
        0,
        1.3118,
        -2.1253,
        0,
        3.1478
      ],
      "normal": [
        -4.1093,
        1,
        1.3118,
        -4.1093,
        1,
        1.3118,
        -4.1093,
        1,
        1.3118,
        -4.1093,
        1,
        1.3118,
        -4.1093,
        1,
        1.3118,
        -4.1093,
        1,
        1.3118
      ],
      "uv": [
        0.01131,
        0.01667,
        0.29205,
        -0.43018,
        0.01131,
        -0.43018,
        0.29205,
        -0.43018,
        0.01131,
        0.01667,
        0.29205,
        0.01667
      ],
      "faces": [
        0,
        2,
        1,
        3,
        5,
        4
      ],
      "material": "sge/23ce4eae-862c-4e22-b703-9f566d400e44/220",
      "type": "Floor"
    },

核心几何字段

bash 复制代码
xyz - 顶点坐标
	含义:存储所有顶点的3D坐标
	格式:[x1, y1, z1, x2, y2, z2, ...]
	作用:定义mesh的几何形状,用于生成点云
faces - 面索引
	含义:定义如何连接顶点形成三角面片
	格式:[v1, v2, v3, v4, v5, v6, ...](每3个索引一个三角形)
	作用:与xyz配合定义完整的3D网格,用于点云采样
normal - 法线向量
	含义:每个顶点的法线方向
	作用:用于光照计算和渲染
uv - UV纹理坐标
	含义:纹理映射坐标
	作用:定义纹理如何贴到mesh表面,与material配合使用

标识和引用字段

bash 复制代码
uid - 唯一标识符
	含义:在整个场景中唯一标识这个mesh
	作用:被scene.room[].children[].ref引用,用于查找和存储
material - 材质引用
	含义:指向material数组中某个材质的uid
	作用:关联mesh与材质信息(纹理、UV变换等)
	对应关系:mesh.material → material[].uid
jid - 资源ID
	含义:资源标识符
	作用:在mesh中较少使用;在furniture中用于查找3D-FUTURE模型文件
	对应关系:furniture.jid → model_info.json中的model_id → OBJ文件路径
aid - 附件ID
	含义:附件ID数组
	作用:当前代码中较少使用,主要用于数据完整性

分类和组织字段

bash 复制代码
type - 网格类型
	含义:标识mesh的类别
	可能值:"Wall", "Floor", "Ceil", "Others"
	作用:用于语义分类和点云标签分配
	语义映射:wall→1, floor→2, ceil→3, others→4
constructid - 构造ID
	含义:标识属于同一构造单元的mesh
	作用:将相关mesh分组(如同一面墙的不同部分)
instanceid - 实例ID
	含义:标识mesh在场景中的具体实例
	作用:区分同一构造单元中的不同实例

字段关系

bash 复制代码
mesh.material → material.uid → 获取材质信息(texture, UVTransform)
mesh.uid ← scene.room[].children[].ref → 房间引用mesh
mesh.type → 语义标签 → 点云生成时的标签分配
mesh.xyz + mesh.faces → 构建3D网格 → 采样点云

与其他文件的对应

bash 复制代码
与Material的关系:
	mesh.material(字符串)→ material[].uid → 获取material.texture和material.UVTransform
与Room的关系:
	scene.room[].children[].ref → mesh.uid → 将mesh关联到房间
与3D-FUTURE的关系:
	注意:mesh的jid通常不直接对应3D-FUTURE模型
	只有furniture.jid才对应3D-FUTURE模型文件
相关推荐
多恩Stone4 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
多恩Stone4 天前
【3D-AICG 系列-15】Trellis 2 的 O-voxel Shape: Flexible Dual Grid 代码与论文对应
人工智能·python·算法·3d·aigc
在下胡三汉4 天前
为什么“资产土地”标准化主资产的 glTF、glb格式模型,为什么非常流行
3d
2401_863801464 天前
3DTiles(.b3dm,i3dm,cmpt) 数据转换fbx转obj转max转su,cesium格式模型转换
3d
3Dmax效果图渲染研习社4 天前
2026年3ds Max云渲染平台哪个好?
3d
上海合宙LuatOS4 天前
LuatOS核心库API——【json 】json 生成和解析库
java·前端·网络·单片机·嵌入式硬件·物联网·json
敲代码的柯基4 天前
一篇文章理解tsconfig.json和vue.config.js
javascript·vue.js·json
万物得其道者成5 天前
前端大整数精度丢失:一次踩坑后的实战解决方案(`json-bigint`)
前端·json
思茂信息5 天前
基于CST 3D Combined功能的以太网口RE仿真
开发语言·javascript·单片机·嵌入式硬件·matlab·3d