GIS中3Dtiles的本质是什么?

290 阅读2分钟

3D Tiles 的本质是一种开放的、用于流式传输和渲染大规模异构 3D 地理空间数据集的规范格式。

  • 目标:  高效地在Web浏览器、移动设备和桌面应用程序中渲染海量城市级甚至全球级的 3D 数据(倾斜摄影模型、点云、建筑BIM/CAD、矢量要素、地形等)。

  • 核心思想:

    1. 空间数据结构:  将数据组织成层次化的空间数据结构(通常是瓦片树,如四叉树、八叉树、KD树)。每个节点是一个瓦片 (Tile)。

    2. 细节层次 (LOD):  每个瓦片包含同一空间区域在不同细节层次 (Level of Detail) 上的数据表示。离相机近时加载高细节瓦片,远时加载低细节瓦片。

    3. 流式传输:  客户端(如 CesiumJS)根据当前视图(相机位置、方向、视锥体)动态请求和加载所需的瓦片,实现“按需加载”。

    4. 异构数据:  支持多种数据类型的瓦片规范:

      • b3dm (Batced 3D Model): 批量模型,如带纹理的建筑、树木等。
      • pnts (Point Cloud): 点云数据。
      • i3dm (Instanced 3D Model): 实例化模型,如重复的电线杆、路灯。
      • cmpt (Composite): 组合瓦片,将其他类型的瓦片组合在一起。
      • vctr (Vector): 矢量数据 (实验性)。
      • geom (Geometry): 简单几何体 (实验性)。
  • 格式基础:  基于 glTF (GL Transmission Format) 2.0 标准或其扩展(b3dmi3dm 内部本质上是 glb 文件)。使用 JSON 描述瓦片集 (tileset.json) 的元数据和层次结构。

  • 优势:  高效渲染海量数据、支持渐进式加载、支持多种数据类型、平台无关性、开放标准(由 Cesium 团队提出,现已成为 OGC 社区标准)。

  • 关键技术:  WebGL、空间索引、LOD、异步加载。