3D Tiles 简单介绍
3D Tiles是用于流式传输大规模异构3D地理空间数据集的开放规范。为了扩展Cesium的地形和图像流,3D Tiles将用于流式传输3D内容,包括建筑物,树木,点云和矢量数据。
3D Tiles 已经在Cesium中进行,例如,请参考:
纽约市超过110万个OpenStreetMap建筑物
在Chappes,法国点圣玛丽教会的云彩
3D图形将图形研究,电影行业和游戏行业的技术引入3D地理空间,定义了一种空间数据结构和一组专为3D设计的图块格式,并针对流媒体和渲染进行了优化。3D模型的平铺使用glTF,这是由Khronos开发的WebGL运行时数据格式,Cesium团队为此做出了巨大贡献。
在Cesium中加载3D Tiles就像这样简单:
var viewer = new Cesium.Viewer('cesiumContainer');
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ url : '/path/to/3d/tileset' }));
3D Tiles 是
- Open(开放)
- Optimized for streaming and rendering(针对流和渲染进行了优化)
- Designed for 3D(专为3D设计)
- Interactive(交互式互动)
- Styleable(设置样式)
- Adaptable(适应性强)
- Flexible(灵活)
- Heterogeneous(异构的)
- Precise(精确)
- Temporal(时间动态)
Open
3D Tiles是一个开放式规范,在Cesium中具有开源实现。我们希望看到其他3D引擎和转换工具使用3D Tiles。
此外,我们通过发布相关技术文章(例如Cesium中的边界体积优化和平面掩蔽)来帮助推动该领域的发展。
规范和实施的开发正在进行中,我们鼓励在Cesium论坛上进行公开讨论。我们预计它们将在2016年春季稳定下来。
Optimized for streaming and rendering
3D Tiles的主要目的是改善大规模异构数据集的流和渲染性能。3D Tiles的基础是一种空间数据结构,它支持层次结构细节级别(HLOD),因此只有可见的图块才会被流式传输 - 并且只有那些对于给定3D视图最重要的图块。平铺有效载荷可以是二进制和上下文感知压缩的,例如,使用Open3DGC或oct编码。
3D Tiles是由一个从一开始就使用WebGL的团队设计的,而OpenGL在此之前已经使用了很多年。因此,与glTF一样,从接收3D Tile到使用WebGL渲染3DTF的流程简化为快速简单,并最大限度地减少客户端处理。为了减少WebGL绘制调用的数量,可以预先批量处理或批量处理切片。
在剑桥的3D建筑物
稀疏网格布局中切片的边界体积。每个图块都是一个WebGL绘图调用
放大视图看哈佛
缩小的调试视图显示只需要在上面的Harvard Yard视图中呈现Cambridge数据集的子集
Designed for 3D
从头开始,3D Tiles专为真正的3D设计,配备自由漫游相机; 它们不仅限于2.5D视角等案例。
3D Tiles不依赖于2D构造(如缩放级别),而是基于细节级别(LOD)选择的几何误差和可调像素误差。这允许性能/视觉质量调整,并在同一视图中为多个“缩放级别”构建。
在3D Tiles中,边界体积是3D,而不是2D制图范围。在2D中,切片方案通常基于Web墨卡托投影。Web Mercator不适合3D,因为极点投射到无限远,也因为NGA 不推荐使用Web Mercator进行DoD应用。相比之下,在3D平铺中,平铺方案在所有三个维度中都是可适应的,这取决于数据集中的模型及其分布。
传统的地理空间要素(如多边形和折线)可以在表面上方挤出或绘制。但3D Tiles超越了点,折线和多边形,以考虑具有网格,材质和节点层次结构的完整3D模型。
Interactive
3D Tiles支持交互式选择和样式。即使使用WebGL优化(例如批处理),3D Tiles也允许单独的模型交互,例如鼠标悬停时突出显示或移除3D建筑。Tiles可以包含每个模型的元数据以允许其他交互,例如使用建筑物ID查询第三方Web服务。
鼠标悬停突出显示3D Tile交互
Styleable
单个模型的元数据(例如建筑物高度或建造年份)可以在运行时用于着色而无需编写代码。样式可以即时更改。
高度依赖的建筑颜色展示3D瓷砖造型
Adaptable
例如,在TMS中使用的传统四叉树细分对于地图图块和2D是足够的,但是对于3D和非均匀数据集分布而言它是次优的。
3D Tiles在3D中实现自适应空间细分,包括kd树,四叉树,八叉树,网格和其他空间数据结构。转换工具可以自适应地细分数据集,而不是刚性空间细分,例如,基于渲染每个模型的成本和模型的分布,从而产生平衡的数据结构。像Cesium这样的运行时引擎是通用的,适用于所有细分技术。
基于剑桥建筑物分布的自适应四叉树细分
Flexible
使用传统的2D地图图块,当用户放大时,可见的地图图块将被新的更高分辨率的地图图块替换。这称为细化。在某种意义上,相同内容的子集再次下载,但分辨率更高。我们称之为替代改进,它是图像拼贴甚至3D地形的合理解决方案。
但是,其他3D数据集(如建筑物和点云)需要更大的灵活性。例如,在观看者放大时,不是基本上多次下载相同的建筑物,而 是3D Tiles而不仅仅是新建筑物。我们称之为添加剂改进。添加剂细化具有额外的好处,即子图块可以在下载时呈现,而不是替换细化,这需要首先下载所有父项的子项。
3D瓷砖允许更换和添加剂细化。
迈阿密建筑的根瓦包含最“重要”的建筑物
当观察者放大时,使用添加剂细化来流式传输包含下一个最重要的建筑物的子瓦片。根块和最近的子块显示在此处
随着观察者放大得更近,孙子瓷砖被加载(蓝色)。请注意,子图块不会在远处加载
Heterogeneous
3D Tiles是异构的,因为3D数据集没有一个适合所有人的尺寸。批量模型(例如,建筑物)需要来自实例模型(例如,树)的不同表示,其需要来自点云的不同表示,等等。
3D Tiles通过启用自适应细分,灵活细化和可扩展的切片格式集支持异构数据集。
3D Tiles的异构性质允许离散水平的细节与HLOD结合,因此,例如,3D建筑可以是一个LOD上的广告牌和标签,更高LOD的挤压印迹,下一个LOD的3D模型,以及在最高LOD纹理3D模型。
Precise
鉴于Cesium在火箭科学中的根源(字面意思),3D Tiles提供全精度几何,以避免抖动伪像,而无需存储双精度值。
Temporal
Cesium专为时间动态可视化而设计,例如卫星和无人机。下一步是将其扩展到3D Tiles,以便用户可以通过大量时间动态地形和点云来查看地形或积雪随时间的变化。
作者:一角钱_hui
链接:https://www.jianshu.com/p/d13d895f2024
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
3D Tiles 简单介绍相关推荐
- cesium之3D tiles格式介绍
文章目录 1. 介绍 2. 文件扩展和MIME类型 3. JSON编码 4. URIs 5. 单位 6. 概念 6.1 坐标参考系 6.2 瓦片 6.2.1 几何误差 6.2.2 细化 6.2.2.1 ...
- cesium之3D Tiles Next(下一代的3D Tiles)介绍
文章目录 1. 概述 2. 元数据的有效流式传输 2.1 类型系统 2.2 不同层级 2.3 语义规范 3. 空间索引增强 3.1 隐式分割 3.2 S2分割算法 4.复合内容分层 5. 与glTF的 ...
- 【3Dprinter】3D打印机机型结构 UM、I3、Hbot等的简单介绍
3D打印机机型结构 UM.I3.Hbot等的简单介绍 2016-6-14 15:18| 发布者: TumiZhou| 查看: 2103| 评论: 2|原作者: TumiZhou 摘要: 这两年随着3D ...
- 【修真院Java小课堂】Tiles框架简单介绍
大家好,我是IT修真院上海分院第6期的学员,一枚正直纯洁善良的程序员 今天给大家分享一下,Tiles框架简单介绍 Tiles框架简单介绍 背景介绍 什么是Tiles Tiles 是一种JSP布局框架, ...
- 3D Tiles 介绍(三)
原文地址:点击打开链接 Viewer request volume 视景器请求体 A tile's viewerRequestVolume can be used for combining hete ...
- 3D Tiles介绍(一)
原文地址:点击打开链接 Spec status The 3D Tiles spec is pre-1.0 (indicated by "version": "0.0&qu ...
- 全面了解3D Tiles
一.3D Tiles介绍 Cesium是一个虚拟地球三维平台,可视化范围上至太空中每一颗卫星,下至地面上每一幢建筑物.为了实现数字地球(Digital Earth vision)的蓝图,使连接世界上的 ...
- 开源并兼容Windows NT的操作系统ReactOS简单介绍
**************************************************************************************************** ...
- Android 系统简单介绍
Android 系统简单介绍 2011年11月20日 写这篇文章的目的是为了给那些刚刚入手安 卓手机的新手们一些参考,希望他们能快速的上手 [第一期]ANDROID基础知识1~20 [第二期]继续泡! ...
最新文章
- stream流map 多个字段_stream流根据对象指定字段去重
- MySQL基础篇:子查询
- 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用
- 205. jetcache:你需要知道的小技巧
- redis存储java对象存储_Spring-Data-Redis存储对象(redisTemplate)
- Eclipse is running in a JRE, but a JDK is required 解决方法(转)
- 如何重启_消费市场按下重启键,企业该如何提前布局
- 严格对角占优矩阵特征值_二次型和特征值
- 集群节点数和分片数关系_Elasticsearch最佳实践之分片使用优化
- MVC添加控制器时提示无法检索“MyContosoUniversity.Models.Student”的元数据
- 学习进度条(第九周)
- 聊一聊使用airtest-selenium做Web自动化的常见问题
- MySQL更新死锁问题
- [破解]Shark恒破解基础教程笔记
- iOS各种证书之间详解关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- 网盘搜索引擎原理大揭秘
- 第4章 手机平板要兼顾,探究碎片
- AR涂涂乐⭐七、(end)取消“识别成功”提示面片、加入太阳系及其交互功能、退出按钮设置
- 大数据平台的SQL查询引擎有哪些
- Linux MySQL8.0.11版本升级到MySQL8.0.23【数据库备份】