Cesium相关3D数据简介

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

Cesium的数据格式主要是3DTiles,3DTiles由tileset.json和tile组成,其中tile可以是.b3dm、.i3dm、.pnts、.vctr和.cmpt中的任一种格式文件。此外Cesium还支持其它3D格式,包括glTF、glb、Quantized-mesh(.terrain)等,支持其它数据向3DTiles格式的转换后加载,包括obj、BIM等。

  • 3DTiles

3DTiles是一个抽象的数据定义,表现在其没有统一的数据格式,而仅仅是一种命名(也就是说Cesium中的数据到处都可以称为3DTiles格式,但到底什么是3DTiles格式呢?并没有统一的数据格式)。实际上它定义数据的基本框架是瓦片集,瓦片集包括瓦片集数据(tileset.json)和瓦片数据(tile),其中瓦片数据可以是多种文件类型,基本结构如图1.1所示。瓦片集数据是对整个瓦片集的说明以及瓦片的空间组织结构的存储,瓦片数据负责存储单个瓦片内的所有三维地理信息数据,包括模型数据、属性数据等。

图1.1 3DTiles数据基本逻辑框架

3DTiles的瓦片数据有多种:b3dm(Batched 3D Modal,批量3D模型)、i3dm(Instanced 3D Modal,实例3D模型)、pnts(Point Cloud,点云)、vctr(Vector Data,矢量数据)和cmpt(Composite,复合数据)。

  1. b3dm

b3dm瓦片可以用于存储带纹理的地形表面、三维建筑物的外部和内部(BIM数据)、大量的三维模型数据等。

b3dm的数据结构如图1.2所示,其基本文件结构是文件头部加主体。文件头部记录了文件类型、版本、大小等基本信息,同时也记录了要素表、批量表的大小。主体部分首先是要素表与批量表,然后是存储模型的glb文件。要素表存储要素的元数据(要素个数),批量表存储具体属性(要素id等),要素表与批量表可以采用JSON文本或二进制,没有强制要求。glb文件被内嵌到b3dm文件中,其中使用的几何数据和图片资源可以集成到glb也可以采用外部引用形式。b3dm是3DTiles中用途最多、使用最频繁的瓦片数据种类。

图1.2 b3dm瓦片文件数据结构

  1. i3dm

i3dm瓦片也存储glb的模型,但是i3dm瓦片强调物体的可复制性。这说明i3dm的模型只用于表达一个对象,通过指定位置该模型对象可以在多个位置出现。官方建议,i3dm可以用于存储大尺度上的树木、风车、消防栓、井盖、路灯、交通信号灯等物体,也可以用于存储小尺度上的螺丝钉、阀门、插座等物体。i3dm体现的是要素的相同性、这种相同性不仅表现在要素的种类也表现在具体的内容,i3dm从很大程度上减少了数据冗余度,这也刚好诠释了i3dm对于“实例”的定义。i3dm文件的基本结构与b3dm类似,如图1.3所示,文件头部仅仅多了对引用glb文件的描述(url或内嵌二进制glTF)。

i3dm与b3dm的差别主要在要素表部分,i3dm的要素表除了实例的个数还需要存储实例出现的位置以及方位,通过位置坐标与方向参数确定实例模型在三维椭球上的渲染位置与姿态。此外,i3dm也提供了在局部地表的东北上坐标框架,当设置这种坐标框架开启时可以不用设置模型方位参数,而改由Cesium运行环境计算所需参数。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值