3DTiles的构建和加载方案

当三维重建完的模型很大时,一次性加载时会很消耗内存。

为了解决这个问题,工程上通常采用3D Tiles来实现模型分块层级加载。

本文将介绍一种3D Tiles的构建和加载方案。

3D Tiles简介

3D Tiles 是一种面向大规模三维地理空间数据的开放数据标准,最早由 Cesium 提出,现已成为 OGC(开放地理空间联盟)标准。

3D Tiles 采用 空间分块(Tiles)+ 层级细节(LOD) 的方式:

  • 远处:加载低精度模型
  • 近处:逐步加载高精度模型
  • 看不见的区域:完全不加载

3D Tiles 的格式由三部分构成:

  • Tileset(瓦片集):整个 3D Tiles 数据的入口文件,通常是一个 tileset.json,用于描述:
    • 空间范围(Bounding Volume),常见有三种格式Box(包围盒)、Region(经纬度 + 高程)、Sphere(球体)
    • 层级结构(树结构)
    • 每个 Tile 对应的数据文件
    • LOD 切换条件(如屏幕误差)
  • Tile(瓦片):每一个 Tile 是空间中的一个局部区域,包含几何数据和纹理信息,Tile 之间构成一棵空间层级树(通常是八叉树 / KD-Tree)。
  • 内容格式(Content)Tile 中真正存放数据的格式,可包含不同格式的模型。

三维空间中,当相机靠近时,父节点会"退居幕后",子节点逐层加载,从而减少单次加载的信息量,缓解内存压力。

3D Tiles构建

用Metashape2.0以上的版本可以生成3D Tiles(瓦片模型)格式的模型,软件可通过该链接1下载。

下面我采用MipMap2上公开的数据进行演示。

在Metashape中,先导入数据,再对齐照片,之后就可以创建瓦片模型。

下面是传统模型和瓦片模型的对比效果。

传统三维模型从远拉到近,效果没有变化,始终是完整加载进内存。

瓦片模型在远距离会先出现低精度的模型,随着相机拉近,模型出现层级变化,逐渐清晰。

3D Tiles加载

在Metashape中,导出3D Tiles格式的瓦片模型,选择.3tz格式的文件。

导出后,把.3tz的后缀改成.zip,然后解压,就可以得到3D Tiles格式的文件夹。

让AI使用Cesium写一段简单的脚本文件,就可以实现在浏览器中加载模型文件。

参考

1 https://pan.quark.cn/s/27603225afa2

2 https://www.mipmap3d.com/datasets

相关推荐
k4m7v2pz5 小时前
Bevy 0.18.1 雨雪天气粒子系统排障实录:四个“想当然“如何让 3D/2D 粒子全部不可见
3d·游戏开发·3d渲染·bevy·天气粒子·2d渲染
戴西软件6 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
Jmyd01236 小时前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
AI视觉网奇14 小时前
3d子部件高亮选中
开发语言·javascript·3d
我才是银古1 天前
当 360° 全景遇上真实地图:Vue 3 实现全景-地图双向联动的工程实践
3d·vue3·360影像
做cv的小昊2 天前
结合代码读3DGS&世界模型论文(3)——3DGS & 世界模型新工作GaussianDream论文及代码解读
3d
lilian2333 天前
HarmonyOS 7 新特性(十三)|3DGS 模型加载、交互与性能回退
3d·交互·harmonyos
DolitD3 天前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
Liudef063 天前
腾讯混元Hunyuan3D-Part:重新定义3D部件生成的革命性架构
人工智能·3d·架构·腾讯混元hunyuan3d
2601_967659893 天前
大学实训室网络仿真环境搭建:Ranplan 3D射线跟踪双版本技术解析
网络·3d