由于点云数据的量非常大,cesium在显示海量数据的时候就非常的吃力,因此需要用到3dtiles。
3D Tiles=lod+gltf,专门为大量数据流式传输和海量渲染而设计的一种格式。
点云格式主要有一下几种
1.b3dm(批量3D模型) 大型异构3D模型,包括三维建筑物、地形等
2.i3dm(实例3D模型) 3D模型实例,如树、风力发电机等
3.pnts(点云) 点云数据
其中b3dm 主要用于房屋建筑 地形影像等,i3dm主要用于单个实例的模型 如树,路灯,发电机等,一个位置点一个模型
pnts用于点云数据的3dtiles。
tile以树的结构来组织,其结合了层次LOD(HLOD)的概念,以便最快最佳的渲染空间数据。在树结构中,每个tile都有一个边界包围盒属性,该边界包围盒在空间中能够完全包围该tile和孩子节点的数据。
每个tile都有一个request volume 包含自己边界信息,屏幕误差,modeMatrix,以及children节点的数据等。
在数据加载的过程中,数据会以request volume去请求数据。
cesium在渲染模型的时候按照树形结构去查找源数据(b3dm,i3dm,pnts等)并渲染。
原数据包含两部部分,其中第一部分为header,第二部分为body
header部分包含FeatureTable(特征表)和Batch(批处理表)
body部分为具体的数据。