C++学习(七十一)3Dtiles glTF glb b3dm

本文介绍了glTF和glb作为3D模型的标准格式,强调其在Web上的广泛应用和优势。glTF提供连续数据块、视图和访问器确保性能和兼容性,而GLB是glTF的二进制表示。接着讨论3D Tiles,它是用于大规模异构3D地理空间数据集的开放规范,通过空间数据结构实现高效流式传输和渲染。最后提到了b3dm,是3DTiles规范中用于表示单个瓦片的数据格式,基于glTF进行数据存储。

一、glTF、glb

glTF表示了渲染一个模型的几何数据、纹理数据、材质数据、元数据等。glTF一般用于表示一个具体模型,比如汽车、树木等,不会用于表示一个数字城市,数字城市一般用3DTiles来表示。

glTF的整体设计,概括有四点:第一,数据块(Buffer)连续,保证了读写性能;第二,提供了视图(View)和访问器(Accessor)的概念,在不损失数据块完整性的前提下提供类型信息和读取规范,保证了兼容性;第三,逻辑层和数据层分离,两者尽量分离,比如用户想要增加一种风格,只会牵连到逻辑层的调整,不会影响数据层的读写,保证了独立性;第四,逻辑层,也就是业务层是JSON形式,保证了扩展性。

GLTF代表Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为Web上的3D对象标准。它由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的JPG格式:Web导出的通用标准。

A-Frame和ThreeJS原生支持GLTF。尽管一些3D Web框架支持特定于平台的模型格式,如FBX和OBJ,但几乎每个框架都支持GLTF。如果有人要为你提供3D模型,你可以请求他们提供GLTF格式的版本。

GLB是GLTF模型的⼆进制⽂件格式表⽰。GLTF的node层次结构、mesh、材质、动画等信息都⽤⼆进制信息表⽰。
GLB⽂件主要包括Header和Chunks两部分,⽂件结构⽰意图如下:

 Header
GLB⽂件的头部包含3部分,每部分由4 bytes组成,共12 bytes:
unit32 magic - GLTF标识符,数值为 0x46546C67,gltf的ASCII码值
unit32 version - GLTF版本号
unit32 length - GLB⽂件的⼤⼩,包括header和所有chunks的字节长度

Chunks

chunkLength - chunkData的长度
chunkType - chunk的类型,主要有JOSN和BIN(对应我们平时的scene.gltf和scene.bin的数据)
chunkData - chunk的binary数据

二、3D Tiles

是用于流式传输大规模异构3D地理空间数据集的开放规范。为了扩展Cesium的地形和图像流,3D Tiles将用于流式传输3D内容,包括建筑物,树木,点云和矢量数据。

3D Tiles的主要目的是改善大规模异构数据集的流和渲染性能。3D Tiles的基础是一种空间数据结构,它支持层次结构细节级别(HLOD),因此只有可见的图块才会被流式传输 - 并且只有那些对于给定3D视图最重要的图块。平铺有效载荷可以是二进制和上下文感知压缩的,例如,使用Open3DGC或oct编码。

在Cesium中有开源实现。

3D Tiles在glTF的逻辑层,也就是JSON部分增加了FeatureTable和BatchTable,以及LOD(tileset)概念,并对应提供了header(二进制存储)。从数据规范角度来看,继承了glTF优秀的部分,同时考虑了倾斜,点云,后续也会支持OSM,从数据类型的支持上也比较到位。

三、b3dm

Cesium的Batched 3D Tiles Data的简称,它是3DTiles规范的一部分,本质上b3dm也是使用glTF来存放数据的。用于表示3DTiles的每个瓦片(3d-tiles/specification/TileFormats/Batched3DModel at main · CesiumGS/3d-tiles · GitHub)。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值