基于C++17、Qt的3DTiles转换工具,支持多种坐标系的倾斜模型、矢量数据转换,也是全网唯一支持倾斜模型金字塔重建的开源工具
3DTiles转换工具,快速将OSGB转为Cesium 3DTiles。
这是一个基于c++17的项目。
提供 OSGB(OpenSceneGraph Binary)
转 3DTiles
简化命令行传入参数,默认采用GLTF2.0格式(y轴向上),多线程并行。
Converter -f <FORMAT> [OPTIONS] <INPUT> <OUTPUT>
# from osgb dataset
Converter -f OSGB -m true -i <OSGB> -o <OUTPUT>
Options:
-?, -h, --help displays help on commandline options.
-f, --format <format> OSGB or Vector(required), OSGB 为倾斜摄影格式数据, Vector为GDAL支持的面(Polygon)数据
-m, --merge <true/false> 根节点合并开关选项
-i, --input <INPUT> 输入数据的目录,OSGB数据截止到 `<DIR>/Data` 目录的上一级,GDAL参考GDAL数据格式。
-o, --ouput <OUTPUT> 输出目录。OSGB转换的3DTiles输出的数据文件位于 <DIR>/Data`目录, GDAL转换的3DTiles输出的数据文件位于<DIR>/Tile目录,tileset.json位于<DIR>根目录。
倾斜摄影数据仅支持 smart3d 格式的 osgb 组织方式:
- 数据目录必须有一个
Data
目录的总入口; Data
目录同级放置一个metadata.xml
文件用来记录模型的位置信息;- 每个瓦片目录下,必须有个和目录名同名的 osgb 文件,否则无法识别根节点;
正确的目录结构示意:
- Your-data-folder
├ metadata.xml
└ Data/Tile_000_000/Tile_000_000.osgb
gdal | openscenegraph | qt |
---|---|---|
3.7.0 | 3.6.5 | 5.15 |
- vcpkg install "gdal" "osg" "osg[plugins]"
- 如果没有Qt5.15,可以通过以下两种方式安装:
- 通过Qt官网安装
- vcpkg install "qt5[all]"
- Visual Studio选择CMakeLists.txt,导入工程,编译
- 将OSGPlugins-${Version}文件夹复制到编译目录下
- 目前只迁移了OSGB的转换转换工作,后面进行GDAL转换代码迁移
- 初步实现了根节点合并,目前只做到了Vertex简化,后面加入纹理简化
- 3dtiles specification https://github.com/CesiumGS/3d-tiles