1. i3s
i3s是规范,实现i3s规范的是slpk文件,slpk文件是单文件,是zip压缩包(压缩格式为“仅存储”)。
以节点的形式组织。
1.6版本中节点的信息写在json里,数据存在二进制文件里。
1.7虽然保留了json描述文件,但是新增了节点页的方式(类似于索引,效率更高了)。
2. gltf如何演进到3dtiles
gltf暂时不了解内部数据结构。
gltf内部是json文本,资源可以是DATAURL,也可以是引用(?未验证)
gltf将资源和json文本二进制化后即glb,二进制结构图如下:
glb是一个单文件,便于网络传输。
在glb的前面再加一些二进制数据,构成b3dm二进制文件(单文件)。
在json中引用这个b3dm文件(content键),形成的有规范的文件组合,即3dtiles。
3dtiles并不是一个文件,而是一种组织方式。只不过在存储时,用了glb的变种格式b3dm,描述时用json。
以下是b3dm的结构:
以上是gltf演进至glb至b3dm至3dtiles的过程。
3. s3m
s3m暂未了解,目前只知道也是json+二进制文件描述的方式来保存三维信息的。
4. 为什么要开发这些规范
以往的三维数据格式不便于网络传输。
为了便于网络传输,并且为了效率,使用二进制文件。
但是二进制文件极容易读错,所以就不解析,直接让GL程序显示。