Cesium: 如何将倾斜摄影数据转换为3dTiles格式

1、 引言

  随着Cesium平台的开源易于上手性和优秀快速开发出活原因,国内GIS平台越来越多的将Cesium作为自己产品的web端来进行使用,但面临建一个不大不小的问题:对于小模型数据一般采用.gltf或.glb格式即可加载显示,但对于较大面积批量的数据如何快速有效加载成了一个问题,官方提出了3D tiles格式来解决,但如何将自己的模型转化为3D tiles格式?官方没有提供工具,原因有很多,比如划片的合理性,不同专业数据采用不同的划片方式等等,官方知识提供了3D tiles格式的介绍,具体操作还需要自己来写。很多人采用的是Cesium实验室(CesiumLab)提供的工具来进行转换使用,但是毕竟不开源用起来有顾虑和不方便,因此需要想法去找合适的开源工具。主要应用场景如下大体量的倾斜摄影转换,shp格式的城市素模数据转换

2、 Cesium简介

  Cesium是AGI公司计算机图形开发小组与2011年研发的三维地球和地图可视化开源JavaScript库,Cesium一词来源于化学元素铯,铯是制造原子钟的关键元素,研发小组通过命名强调Cesium产品精益求精,专注时间数据可视化。Cesium为三维GIS提供了一个高效的数据可视化平台。即:
(1)Cesium是一个跨平台、跨浏览器的展示三维地球和地图的JavaScript库
(2)Cesium使用WebGL来进行硬件加速图形,使用时不需要任何插件支持。
(3)Cesium是基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途。
入门代码可以参考:Cesium入门代码

3、cesium之3D tiles格式

  3D Tiles是Cesium于2016年3月定义的一种三维模型瓦片数据格式,目前已经是OGC标准之一,3D Tiles将海量三维数据以分块分层的形式组织起来,大大减轻了浏览器和GPU的负担。从结构关系上看,3D Tiles归属于Primitive,有很高的数据加载效率。3D Tiles专为流式传输和渲染3D地理数据而设计的,如倾斜摄影测量、BIM、点云、建筑数据等。
详情参考文章:cesium之3D tiles格式介绍

4、转换工具

下面介绍一款开源工具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\texture 转换等。

转换效果:

上海城市素模 由shp格式转换为3dtiles格式 cesium显示
城市素模
倾斜摄影数据转换: osg显示
在这里插入图片描述

5、数据要求及说明

①倾向摄影数据

倾向摄影数据仅支持smart3d格式的osg组织方式:

  • 数据目录必须有一个“Data”目录的总入口;
  • “Data”目录同级放置一个metadata.xml文件用于记录模型的位置信息;
  • 瓦片目录下,必须列出和目录名同名的osgb文件,否则无法识别根节点;

正确的目录目录:

- Your-data-folder
  ├ metadata.xml
  └ Data\Tile_000_000\Tile_000_000.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格式,便于调试成程序和测试数据

用法
① 命令行

3dtile.exe [FLAGS] [OPTIONS] --format <FORMAT> --input <PATH> --output <DIR>

② 例子

# from osgb dataset
3dtile.exe -f osgb -i E:\osgb_path -o E:\out_path
3dtile.exe -f osgb -i E:\osgb_path -o E:\out_path -c "{\"offset\": 0}"
# use pbr-texture
3dtile.exe -f osgb -i E:\osgb_path -o E:\out_path -c "{\"pbr\": true}"

# from single shp file
3dtile.exe -f shape -i E:\Data\aa.shp -o E:\Data\aa --height height

# from single osgb file to glb file
3dtile.exe -f gltf -i E:\Data\TT\001.osgb -o E:\Data\TT\001.glb

# from single obj file to glb file
3dtile.exe -f gltf -i E:\Data\TT\001.obj -o E:\Data\TT\001.glb

# convert single b3dm file to glb file
3dtile.exe -f b3dm -i E:\Data\aa.b3dm -o E:\Data\aa.glb

6、下载地址

转换工具下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧特克_Glodon

很高兴能帮助到您!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值