随着Cesium平台的开源易于上手性和优秀快速开发出活原因,国内GIS平台越来越多的将Cesium作为自己产品的web端来进行使用,但面临建一个不大不小的问题:对于小模型数据一般采用.gltf或.glb格式即可加载显示,但对于较大面积批量的数据如何快速有效加载成了一个问题,官方提出了3D tiles格式来解决,但如何将自己的模型转化为3D tiles格式?官方没有提供工具,原因有很多,比如划片的合理性,不同专业数据采用不同的划片方式等等,官方知识提供了3D tiles格式的介绍,具体操作还需要自己来写。很多人采用的是Cesium实验室(CesiumLab)提供的工具来进行转换使用,但是毕竟不开源用起来有顾虑和不方便,因此需要想法去找合适的开源工具。主要应用场景如下:大体量的倾斜摄影转换,shp格式的城市素模数据转换。
Cesium是AGI公司计算机图形开发小组与2011年研发的三维地球和地图可视化开源JavaScript库,Cesium一词来源于化学元素铯,铯是制造原子钟的关键元素,研发小组通过命名强调Cesium产品精益求精,专注时间数据可视化。Cesium为三维GIS提供了一个高效的数据可视化平台。即:
(1)Cesium是一个跨平台、跨浏览器的展示三维地球和地图的JavaScript库
(2)Cesium使用WebGL来进行硬件加速图形,使用时不需要任何插件支持。
(3)Cesium是基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途。
入门代码可以参考:Cesium入门代码
3D Tiles是Cesium于2016年3月定义的一种三维模型瓦片数据格式,目前已经是OGC标准之一,3D Tiles将海量三维数据以分块分层的形式组织起来,大大减轻了浏览器和GPU的负担。从结构关系上看,3D Tiles归属于Primitive,有很高的数据加载效率。3D Tiles专为流式传输和渲染3D地理数据而设计的,如倾斜摄影测量、BIM、点云、建筑数据等。
详情参考文章:cesium之3D tiles格式介绍
下面介绍一款开源工具3dtileConvert,可以用于 3D-Tiles 转换的工具。
这是一个RUST language使用 cpp lib 处理 osgb 数据的项目。提供的工具如下:
- Osgb(OpenSceneGraph Binary)to 3D-Tiles:将大量的 osgb 文件转换为 3D-Tiles。
- Esri Shapefileto 3D-Tiles: 将 shapefile 转换为 3D-Tiles。
- Fbxto 3D-Tiles:将 fbx 文件转换为 3D-Tiles,包括 auto_lod exture 转换等。
转换效果:
①倾向摄影数据
倾向摄影数据仅支持smart3d格式的osg组织方式:
- 数据目录必须有一个“Data”目录的总入口;
- “Data”目录同级放置一个metadata.xml文件用于记录模型的位置信息;
- 瓦片目录下,必须列出和目录名同名的osgb文件,否则无法识别根节点;
正确的目录目录:
② 形状文件
仅支持 Shapefile 的面貌数据,可用于标题当前列表。
Shapefile 中需要有字段来表示高度信息。
③通用模型转glTF:
支持osg、osgb、obj、fbx、3ds等通用模型数据转为gltf、glb格式。
转出格式为2.0的gltf,可在以下网址验证查看:https 😕/pissang.github.io/clay-viewer/editor/
④ B3dm 单文件转glb
支持将b3dm文件转glb格式,便于调试成程序和测试数据
用法:
① 命令行
② 例子