3d-tiles中b3dm文件读取
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.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel
http://nodejs.cn/api/buffer.html