下载glb、gltf、fbx、obj,blend格式素材官网——glbxz.com

什么是3D瓷砖?其核心概念、最新趋势和应用场景的完整指南

近年来,三维空间数据在城市数字孪生、元宇宙环境和智慧城市的发展中迅速扩展。然而,通过激光扫描捕获的高度详细的3D城市模型和点云数据可能非常庞大,使其难以在网页浏览器和移动设备上流畅展示和操作。

3D Tiles 是一个开放标准,专门为应对这一挑战而开发。

本文解释了什么是3Dtiles,其工作原理,与传统2D瓷砖的区别,其不断演变版本的特性,以及其在实际项目中的应用示例。

3Dtiles概述

3D Tiles 是一种数据标准,旨在高效地在网页、桌面和移动应用中流式传输和渲染从太字节到拍字节不等的大型三维地理空间数据集。

它最初由CesiumGS领导开发,并被开放地理空间联盟(OGC)正式采纳为社区标准,OGC是一个国际地理空间标准组织。

其目的是高效地向用户提供各种三维数据——包括BIM模型、地形、摄影测量和点云——而无需一次性加载所有数据。

为什么需要3Dtiles?

当三维瓷砖与常见的网页地图中常用的3Dtiles(如XYZ瓷砖)相比时,其重要性更加明显。

传统的3Dtiles方法

在二维地图中,地球被划分为经纬度网格,通常采用四叉树结构。根据缩放等级,用户会收到图像拼贴,如PNG或JPEG文件,或矢量拼贴如MVT。

然而,三维环境沿Z轴也有高度。应显示的数据会根据摄像机角度、视野方向和与物体的距离动态变化。

3Dtiles方法

3D Tiles 不仅仅是在平面上划分数据。它通过空间包围体分层划分整个三维空间。

当摄像机靠近某个区域或放大时,观察者会加载具有复杂几何体和高分辨率纹理的高度精细3D模型。

当相机远离或缩放显示大面积时,加载的是简化的几何形状或较低分辨率的数据。

这使得系统能够检索和渲染当前视图所需的数据,而不必加载屏幕上不可见的多余数据。

三维瓷砖的核心机制

3D Tiles 通过多项关键技术机制实现了高速渲染。

1. HLOD:层级细节

HLOD是3Dtiles中最重要的概念之一。

基于距离相机和称为几何误差的数值——模型简化引起的视觉差异——观察者动态确定并加载最合适的细节层级。

就像从树根向叶子移动一样,观众会根据需要从覆盖更广区域、细节较低的父图块切换到覆盖较小区域且细节较小的子图块。

2. 带边界体的灵活空间划分

在分割空间时,3Dtiles并不局限于简单的固定网格。包围体积可以根据数据的密度和形状灵活定义。

主要的包围体类型包括:

方框
一个有向矩形方框,适用于建筑群、单个城市街区、道路及其他不规则方向的数据。

球面
由中心点和半径定义的球体。它适用于广域或基于距离的快速计算。

区域
由经度、纬度和高度的最小和最大值定义的区域。它适用于地理上遵循地球曲率的区域。

3. 作为索引tileset.json

一个名为文件的文件管理整体的3D Tiles数据集。tileset.json

它描述的信息包括:

  • 瓦片的层级树结构
  • 包围体积的位置和尺寸
  • 赋予每个瓦片的几何误差
  • 每个瓦片引用的实际内容链接,比如3D模型

查看器读取该文件,决定当前摄像机视图应加载和渲染哪些数据。

3D 瓦片 1.0 与 1.1 的差异

3D瓷砖不断发展。1.1版本现代化了数据和元数据的管理方式。

功能或规格3Dtiles 1.03Dtiles 1.1
文件格式使用专用格式,如批量3D模型、实例化模型、点云和复合瓦片.b3dm.i3dm.pnts.cmpt使用标准的 glTF 2.0 文件,包括 和 ,作为主要内容格式。遗留的1.0格式已被弃用.gltf.glb
隐式铺砌不支持。树状结构通常需要用 JSON 明确写成,这会让 JSON 文件对于庞大的数据集变得异常庞大支持。常规细分规则如四叉树和八叉树可以提前定义,从而高效管理大型瓦片层级
元数据可扩展性主要限于瓦片级元数据和批处理表结构化语义元数据可以关联到瓦片集、瓦片、内容组、单个特征、顶点及其他层级
多重内容一般每个格子只有一个内容资源一个格子可以引用多种内容资源,比如地形、建筑和植被

主要应用场景

3Dtiles已被广泛用作商业和公共项目的基础基础设施。

1. 日本高原计划

Project PLATEAU是日本政府的一项倡议,旨在开发开放式3D城市模型,旨在支持日本各地的城市数字孪生。

用于高效分发PLATEAU数据的主要格式之一是3D磁贴。

用户可以查看3D建筑及其语义属性,如建筑使用、建造年份、城市规划信息以及灾害相关信息。

2. 谷歌写实3Dtiles

谷歌的地图拼贴API提供了以3D拼贴格式访问大比例写实的3D地理数据。

这使得开发者能够将谷歌的高质量3D地图数据流式传输到兼容的渲染器中,如CesiumJS和Unreal的Cesium。

这些数据可用于创建沉浸式地理可视化、规划应用、虚拟探索工具和基于位置的体验。

3. 基础设施与建设的数字孪生

大型基础设施资产如道路、隧道、水坝和建筑工地,可以通过无人机摄影测量或激光扫描捕捉。

最终的数据集可能包含数亿个点。

通过将这些数据集转换为3D磁贴,团队可以在浏览器中分享和检查,目的包括:

  • 施工进度管理
  • 基础设施检查
  • 维护计划
  • 远程协作
  • 设计与竣工条件的比较

支持3D瓦片的主要渲染引擎

由于3D Tiles是一个不依赖单一平台的开放标准,因此受到多种开发框架和引擎的支持。

铯JS

CesiumJS 是由 Cesium 开发的开源 JavaScript 库,用于在网页浏览器中高级渲染 3D 瓷砖。

它提供磁贴选择、流式处理、细节层级控制、样式、元数据访问以及与地理空间数据交互等功能。

Cesium用于虚幻、Unity和Omniverse

Cesium提供插件,将高精度地理空间数据流传输到游戏引擎和模拟平台。

这些插件使得将3D瓷砖集成到逼真的游戏、训练模拟器、城市规划工具和数字孪生应用中成为可能。

deck.gl 和 loaders.gl

这些可视化框架最初由Uber开发。

它们支持加载和可视化大规模地理空间数据集,包括3D瓷砖。

Esri 的 ArcGIS

ArcGIS产品提供导入、转换和可视化各种3D地理空间数据的功能。

支持和可用功能可能因所用 ArcGIS 产品和版本而异。

对glTF的支持

三维瓷砖不仅仅是将三维空间划分为更小部分的机制。

随着3D Tiles 1.1的引入,标准glTF和GLB资产可以直接引用,而结构化语义元数据则可以关联到不同层级的对象。

这使得将三维模型与现实世界的信息结合成为可能,例如:

  • 材料
  • 温度
  • 传感器数据
  • 人口统计
  • 房地产价值
  • 设备状态
  • 维护记录

应用程序随后可以在网络上动态地过滤、样式化、查询或分析这些信息。

这帮助3D Tiles发展成为数字孪生平台的实用基础,而不仅仅是3D可视化格式。

对于从事地理空间应用和智慧城市项目的开发者来说,理解3D瓷砖变得越来越重要。

PLATEAU 也采用了铺砌数据的分发方式

Project PLATEAU主要以CityGML格式分发其源3D城市模型数据。

CityGML 文件可以划分为区域网格单元,用于数据分发和管理。当数据被转换为用于网页可视化时,也可以转换为具有层级瓦片结构的三维瓦片。

在网页查看器中,密集区域可以被划分为较小的瓦片,而细节较少的区域则可以用较大的瓦片来表示。

由此产生的瓦片层级结构允许观众根据摄像机位置和观看距离加载适当的细节层级。

跨越3Dtiles边界的建筑是如何处理的?

像东京站这样的长建筑可能会跨越区域边界或瓷砖边界。

如果建筑在每个瓦片边界处都被物理分隔,可能会产生诸如以下问题:

  • 只选中建筑的一部分
  • 边界处纹理错位
  • 重复或不一致的元数据
  • 难以将建筑视为一个语义对象

因此,数据转换系统可能会尽可能将建筑物保存为连贯的对象。

具体方法取决于铺砖流程和数据集设计。

一种可能的方法是用代表性点、重心或其他空间规则将整个物体分配给一个瓦片。

另一种方法是定义超出相邻空间划分的包围体,使整个物体保持被瓦片的包围体包围。

由于3D瓦片允许灵活的边界体,因此邻近瓦片体不必形成完全不重叠的网格。

然而,3D Tiles本身并没有规定将每栋建筑分配给一个格子的通用规则。

为什么可以选择单个建筑

PLATEAU 数据集不一定包含诸如 这样的名称的文件。Tokyo-Station.obj

相反,一个格子可能包含多个建筑特征。

如果在转换过程中保留了特征级标识符和元数据,像 CesiumJS 这样的观察器可以识别出所选建筑为独立的特征。

例如,点击东京站可以让观众:

  • 确定所选建筑
  • 突出显示完整功能
  • 获取其ID
  • 显示结构、用途或建造年份等属性

能够保留特征级身份和元数据,是3D瓷砖在智慧城市和数字孪生应用中非常有用的原因之一。

柔性铺砖方法

三维瓷砖数据集不受单一固定的二维铺砌方案限制,如Web墨卡托XYZ瓷砖。

瓦片集可以使用适合其数据形状、密度和分布的空间细分结构。

理解这种灵活性的重要性揭示了该标准最重要的优势之一。

为什么不只用网页墨卡托瓷砖呢?

在传统的二维网络地图中,如谷歌地图或Mapbox,地球被投影到一个平坦的正方形上,并用四叉树反复划分为四个较小的正方形。

这种方法对地图影像和二维矢量数据非常高效。

然而,仅对所有三维数据使用这种二维划分可能会带来若干限制。

1. 身高的有限表示

Web墨卡托瓷砖主要用于横向划分空间。

地铁站、高层建筑和航线可能在同一纬度和经度区域,但高度却截然不同。

如果所有这些数据总是存储在同一个水平格子里,该子可能会变得非常大。

对于体积数据集,三维细分方法如八叉树可能更为适用。

2. 极地附近的失真

韦布墨卡托投影对比例尺的扭曲越来越多,向北极和南极方向延伸。

这使得它不适合作为所有类型全球尺度三维数据的唯一空间表示。

三维瓷砖可以在全球三维坐标系统中表示地理空间内容,并使用沿地球曲率的包围体。

3. 数据密度不均

不同地点的数据密度差异巨大。

覆盖太平洋中部的瓦片几乎没有数据,而覆盖新宿中心的瓦片可能包含数千栋复杂建筑。

将两个区域完全相同地均匀划分可能效率低下。

3D 瓦片设计数据周围的空间体积

3D Tiles 不再强制将所有数据集集中到一个固定网格中,而是允许瓷砖集定义适合数据的空间边界体。

可用的包围体类型可以根据数据集的特性进行选择。

盒子

定向盒可以紧密贴合单个建筑、倾斜的道路、工程模型或其他空间对象。

与简单的轴对齐盒子不同,它可以旋转以匹配数据的方向。

球面

球体由中心点和半径定义。

它对于快速的可见性和距离计算非常有用,尤其是对于从多个方向观察的广泛数据集。

地区

一个区域由经度、纬度和高度的最小和最大值定义。它适合围绕大城市或地理区域进行围合,同时沿地球形状进行。

在山区,大包围体积可能足以支持广泛分布的数据。在密集城市中,可以在有大量建筑的区域周围创建较小的嵌套边界体。

没有相关数据的区域不一定需要用有人居住的瓦片来表示。

不同服务的铺装示例

由于三维瓦片允许灵活的空间结构,不同数据集可以使用截然不同的细分方法。

PLATEAU 3D 城市模型

PLATEAU的源CityGML数据可能以区域网格单元分发。

当转换为三维瓦片时,具有密集建筑数据的区域可以细分为更小的子图块,形成适合网页可视化的层级树结构。

谷歌照片写实3D瓷砖

谷歌通过OGC 3D瓷砖图块集提供其写实3D地理空间数据。

开发者通过根图块集 URL 访问数据集,兼容的渲染器在用户探索地图时请求所需的子图块。

具体的内部细分算法在公开的API文档中并未完全描述。

无人机捕获的建筑工地

无人机捕获的建筑工地不一定需要遵循全球的经纬度网格。

工地可以用基于施工区边界的本地坐标系统进行划分。

由此产生的摄影测量网格或点云可以根据场地的密度和形状进行平铺。

为什么不同类型的3D数据可以在一个场景中组合

如果3D瓷砖被限制在单一的Web墨卡托式细分规则中,集成本地无人机点云、室内BIM模型和全球城市模型等数据将更加困难。

相反,每个图块集定义了自己的:

  • 空间层级
  • 包围体积
  • 几何误差
  • 内容资源
  • 变换
  • 元数据

兼容的查看器独立解释每个图块集,并将其内容置入共享的三维坐标空间。

这种灵活的设计使得在同一数字孪生环境中,将来源和规模截然不同的数据集合并成为可能。

用不同分区方法叠加瓦片集

像CesiumJS这样的库可以在同一场景中加载多个3D瓷砖图块集。

每个图块集都可以保持自己的层级结构,并评估当前摄像机视角所需的细节水平。

这使得独立管理数据集的高级组合成为可能。

SSE:屏幕空间错误与独立LOD切换

CesiumJS 使用一种称为屏幕空间错误(Screen-Space Error,简称 SSE)的指标来判断何时需要用更详细的子图块替换一个瓦片。

计算过程中考虑的信息包括:

  • 摄像机位置
  • 摄像机角度
  • 视野
  • 该瓦片的几何误差
  • 摄像机与瓷砖之间的距离
  • 显示分辨率

简化的概念流程如下:

Shared camera position, direction, and zoom
   │
   ├── 3D Tiles A: PLATEAU buildings
   │      └── Selects and loads an appropriate LOD from its own tile tree
   │
   └── 3D Tiles B: A company’s drone point cloud
          └── Selects and loads an appropriate LOD from its own tile tree

相机信息是共享的,但每个图块集会用自己的几何误差和包围体积数据评估自己的层级结构。

因此,背景的PLATEAU建筑可能保持在相对粗略的细节层面,而视野中心的高分辨率点云则被细化至最细致。

为什么不同的瓦片结构不会冲突

不同的3D瓷砖数据集可能使用完全不同的隐形空间划分。

一种可能基于区域城市网格,另一种可能基于无人机测量的施工现场边界。

它们仍然可以一起渲染,因为观众不需要不同图块集的边界来匹配。

从概念上讲,CesiumJS 渲染过程执行以下操作:

  1. 获取当前摄像头视图。
  2. 遍历场景中记录的每个3D瓦片图块集。
  3. 评估每个图块集需要哪些瓦片。
  4. 异步下载引用内容。
  5. 准备内容以供GPU渲染。
  6. 渲染共享场景中的可见内容。

从渲染者的角度来看,内容可能代表PLATEAU建筑、无人机摄影测量、BIM模型或点云。

每个图块集通过其图块集层级结构和引用内容提供自己的指令。

开发者可获得的独立控制

该架构允许开发者分别控制单个图块集。

显示或隐藏单个瓦片集

开发者可以在只显示公司自有点云或BIM数据集的同时隐藏PLATEAU建筑。

调整每个图块集的渲染质量

CesiumJS 提供了一个称为 的性质。maximumScreenSpaceError

较高的数值通常通过允许粗糙的瓦片更长时间可见来提升性能,而较低的数值则要求更细致的瓦片并提升视觉质量。

例如:

  • 背景平台建筑可以使用更高的SSE值来降低渲染负载。
  • 主建构BIM模型可以使用较低的SSE值,从而从更远的距离显示详细几何。

这使得开发者能够为每个数据集分配不同的性能和质量优先级。

结论:3Dtiles如何塑造数字孪生的未来

在传统的二维数字地图中,通常通过将公司自有的多边形、标记和业务数据叠加在航拍影像或底图之上,创造新的价值。

通过3Dtiles,可以将独立管理的三维空间数据层以类似方式在网络上合并。

3D Tiles的真正创新不仅限于让大数据更容易流媒体。

其优势还包括:

  • 一个不受固定二维铺砌方案限制的灵活空间层级
  • 可根据数据形状和密度调整的包围体积
  • 基于几何和屏幕空间误差的层级细节选择
  • 保留语义信息的结构化元数据
  • 能够将独立创建的3D数据集合并到一个共享场景中

这些设计原则使得能够将来源和规模完全不同的数据结合起来,包括:

  • Project PLATEAU的全国级开放城市数据
  • 谷歌的写实3D地理数据
  • 无人机捕获的建筑工地
  • 点云
  • BIM模型
  • 传感器信息
  • 本地基础设施数据

随着空间计算和智慧城市的加速推进,3D Tiles正从单一的可视化格式发展为数字空间中用于表示、分析和模拟现实世界的共享基础设施。

对于从事地理空间应用和城市数字化转型的开发者和组织来说,理解3Dtiles的特性并加以合理使用,可以在创建下一代数字服务时带来重大优势。