了解 threejs 中.bin 文件与 .gltf 文件 和 .glb 文件三者之间的关系

  • 正文概述
  • 前言

    在 GLTF 生态中,.bin 文件是 GLTF 格式的重要组成部分,通常与 .gltf 文件一起使用。以下是它们的详细关系和用途:

    一、.bin 文件的作用

    .bin 文件是一个二进制文件,用于存储 GLTF 模型中的二进制数据,例如:

    • 点数(位置、法线、UV坐标等)
    • 索引数据(三角形面的顶点索引)
    • 动画数据
    • 其他二进制资源(如纹理、蒙皮权重等)

    GLTF 格式的设计理念是将结构化数据(如场景、节点、材质等)存储在 .gltf 文件中(JSON 格式),而将二进制数据(如几何体、动画等)存储在 .bin 文件中。这种分离设计使得 GLTF 文件更轻量且易于解析

    二、.gltf 文件的作用

    .gltf 文件是一个 JSON 文件,用于描述 3D 模型的结构和元数据,例如:

    • 场景的层次结构(节点、网格、相机等)
    • 材质的定义(颜色、纹理引用等)
    • 动画的定义
    • 对 .bin 文件的引用(指定二进制数据的位置和用途)

    .gltf 文件通过 buffers 和 bufferViews 字段引用 .bin 文件中的数据。例如:

     
    {
      "buffers": [
        {
          "uri": "model.bin",  // 引用 .bin 文件
          "byteLength": 1024   // .bin 文件的大小
        }
      ],
      "bufferViews": [
        {
          "buffer": 0,         // 引用 buffers 数组中的第一个 buffer
          "byteOffset": 0,      // 数据在 .bin 文件中的起始位置
          "byteLength": 512     // 数据的长度
        }
      ],
      "accessors": [
        {
          "bufferView": 0,      // 引用 bufferViews 数组中的第一个 bufferView
          "componentType": 5126, // 数据类型(如浮点数
          "count": 100,         // 数据项的数量
          "type": "VEC3"        // 数据类型(如三维向量)
        }
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这个例子中,.gltf 文件通过 buffers 字段引用了 model.bin 文件,并通过 bufferViews 和 accessors 字段描述了如何解析 .bin 文件中的数据。

    三、.gltf 和 .bin 的关系

    • .gltf 文件:描述模型的结构和元数据,引用 .bin 文件中的数据。
    • .bin 文件:存储实际的二进制数据(如顶点、索引、动画等),供 .gltf 文件使用。
    • 通常情况下.gltf 文件和 .bin 文件是成对出现的。例如:
    • model.gltf:描述模型的结构。
    • model.bin:存储模型的二进制数据。

    四、.glb 文件的作用

    .glb 是 GLTF 的二进制版本,它将 .gltf 文件和 .bin 文件(以及其他资源,如纹理)打包成一个单独的二进制文件。这种格式更适合传输和加载,因为它减少了文件数量并简化了文件管理。

    .glb 文件 = .gltf 文件 + .bin 文件 + 其他资源(如纹理)。

    五、如何查看或编辑 .bin 文件

    .bin 文件是二进制文件,不能直接编辑。如果需要修改 .bin 文件中的数据,通常需要:

    1. 使用 GLTF 工具(如 glTF-Transform)加载 .gltf 和 .bin 文件。
    2. 修改数据后,重新导出为 .gltf 和 .bin 文件,或直接导出为 .glb 文件。

    六、总结

    • .bin 文件:存储 GLTF 模型的二进制数据(如顶点、索引、动画等)。
    • .gltf 文件:描述模型的结构和元数据,并引用 .bin 文件中的数据。
    • .glb 文件:将 .gltf 和 .bin 文件打包成一个二进制文件。

    如果你需要修改模型(如更换皮肤),通常只需要操作 .gltf 文件中的材质或纹理引用,而不需要直接修改 .bin 文件。

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 了解 threejs 中.bin 文件与 .gltf 文件 和 .glb 文件三者之间的关系

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录