Batched 3D Model(.b3dm)文件,是3d-tiles中单个模型文件,按照官方的文档,是一些基本信息加上glb(Binary glTF)模型文件,参见下图的官网文件说明。

文件的前4位是文件格式名称b3dm,接下来4位是版本号,接下来4位是文件的总长度,后边是featuretable和batchtable的信息,最后是glb文件和一些其他的信息,具体的内容,参见官方的文档。
清楚此文件的格式,就可以对文件进行操作了。
这里使用nodejs语言进行操作,关键的操作步骤如下:

//使用fs模块,读取b3dm文件
        const fs = require('fs');
fs.readFile('文件路径', (err, filebuffer) => {
        if (err)
                   return
           //读取的为nodejs的Buffer类型,参见api进行解析
           //格式说明头读取
      const _headstr = filebuffer.toString('utf8', 0, 4);
     //版本号和文件总长度读取
      const _version = filebuffer.readUInt32LE(4);
      const _bytelen = filebuffer.readUInt32LE(8);
     //按照以上方式,featuretable和batchtable等进行读取
       .....
}
 按照此种方式,b3dm中包含的glb文件,也能够单独分离出来,直接可以保存成一个文件进行查看。

引用内容:
https://github/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel
http://nodejs/api/buffer.html

更多推荐

3d-tiles中b3dm文件读取