草稿 i3s/3dtiles/gltf/s3m的结构对比

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程序显示。

posted @ 2020-01-19 16:14  秋意正寒  阅读(...)  评论(...编辑  收藏