欢迎光临散文网 会员登陆 & 注册

3d-tiles中b3dm文件读取

2022-12-01 15:20 作者:地理信息技术杂谈  | 我要投稿

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


3d-tiles中b3dm文件读取的评论 (共 条)

分享到微博请遵守国家法律