3D Tiles 格式中,Bounding Volum

3D Tiles 格式中,Bounding Volum

在 3D Tiles 格式中,Bounding Volum (包围体),是空间索引的核心机制,它通过层级化的空间范围定义,实现大规模三维数据的高效加载与渲染,

Bounding Volum 是什么?

  • 空间包裹盒:每个瓦片 (Tile)包含一个几何体(如盒子,球体或区域),用于精确描述该瓦片内所有模型数据的空间范围
  • 层级嵌套结构 :在瓦片金字塔中,父瓦片的Bounding Volum 完全包含其子瓦片的 Bounding Volum,形成树状空间索引。

核心作用与功能

  1. 视锥体剔除
  • 原理 : 相机渲染时,快速检测瓦片的 Bounding Volum 是否在视锥体可见范围内
  • 效果 : 仅加载并渲染可见范围内的瓦片(例如:相机背面的建筑瓦片直接跳过)
  • 减少GPU渲染压力,提升帧率(尤其对城市级模型)。
  1. 细节层级控制 (LOD切换)
  • 原理 : 根据瓦片与相机之间的距离,计算其在屏幕上投影大小 (屏幕空间误差,SSE)
  • 效果 : 距离远 ,使用低精度瓦片 (父级 Bounding Volum 粗略包裹)
    距离近, 加载高精度瓦片 (子级Bounding Volum 精细包裹)
  • 避免不必要的细节加载,(如:1公里外的树木,用点云代替精细模型)
  1. 碰撞检测与空间查询
    原理:通过Bounding Volum 快速判断物体与瓦片的交集,(如:射线拾取,车辆碰撞)
    高效支持交互操作,如点击建筑查询属性。

实际效果与性能优化

  1. 加载速度提升,仅请求可见瓦片,减少网络传输量(如100平方千米倾斜摄影数据,实际加载 小于 1 平方千米的瓦片)。
  2. 渲染效率飞跃 : 剔除 70% - 90%不可见瓦片,(实测:百万级建筑场景,帧率从 5fps - 60 fps)
  3. 内存占用优化 :动态卸载视锥体外的瓦片,避免浏览器崩溃。
    如Cesium的LRU缓存策略。
总结

Bounding Volume 是 3D Tiles中定义瓦片空间范围几何体 (BOX,Sphere,Region)

用于构建空间索引层级。

核心作用
  • 视锥剔除 : 跳过不可见瓦片,提升渲染效率;
  • LOD 控制:动态切换瓦片精度,平衡画质与性能
  • 空间查询:支持快速碰撞检测与属性交互,解决海量三维数据的实时加载问题,使城市级,全球级三维可视化成为可能
相关推荐
军军君013 小时前
Three.js基础功能学习七:加载器与管理器
开发语言·前端·javascript·学习·3d·threejs·三维
WebGISer_白茶乌龙桃4 小时前
Cesium实现“悬浮岛”式,三维立体的行政区划
javascript·vue.js·3d·web3·html5·webgl
UnderTurrets20 小时前
A_Survey_on_3D_object_Affordance
pytorch·深度学习·计算机视觉·3d
Hao_Harrision1 天前
50天50个小项目 (React19 + Tailwindcss V4) ✨| ThreeDBackgroundBoxes(3D背景盒子组件)
前端·3d·typescript·react·tailwindcss·vite7
AI浩2 天前
LabelAny3D: Label Any Object 3D in the Wild
3d
学無芷境2 天前
vesselFM: A Foundation Model for Universal 3D Blood Vessel Segmentation
3d
CG_MAGIC3 天前
云渲染时能否关机或断网?
3d·云渲染·建模教程·渲云渲染·3d软件
拾荒的小海螺3 天前
开源项目:Three.js 构建 3D 世界的工具库
javascript·3d·开源
gihigo19983 天前
使用MATLAB绘制3D心形图和玫瑰花图案
开发语言·matlab·3d
zl_vslam3 天前
SLAM中的非线性优-3D图优化之地平面约束(十五)
人工智能·算法·计算机视觉·3d