全面了解3D Tiles

cesium面试题-3、3D Tile是什么 cesium面试题 阅读详情
AI摘要

3D Tiles是Cesium用于流式传输和渲染大规模异构三维空间数据集的开放规范。它针对流和渲染进行了优化,支持交互式选择和样式,适用于建筑物、点云和矢量数据的可视化。3D Tiles的特点包括开放性、自适应细分、灵活的细化方式和适应性。文件规范涉及扩展名、JSON编码、URI、单位和坐标系。内容包括几何误差、细化方式、包围体、变换矩阵、内容和子节点的详细解释。3D Tiles数据集以树状结构组织,支持四叉树、k-d树、八叉树和网格等多种空间数据结构。

一、3D Tiles介绍

Cesium是一个虚拟地球三维平台,可视化范围上至太空中每一颗卫星,下至地面上每一幢建筑物。为了实现数字地球(Digital Earth vision)的蓝图,使连接世界上的地理空间数据成为可能,就要用到3D-Tiles。

3D-Tiles是一个用于流式(stream)传输大规模、异构的三维空间数据集的开放规范(open specification)。为了在Cesium地形和影像成流技术的基础上拓展功能,需要用3D Tiles成流三维数据,包括建筑物,树,点云和矢量数据。

简单点说,3D Tiles是在gltf的基础上,加入了分层LOD的结构后得到的产品,专门为大量地理3D数据流式传输和海量渲染而设计的一种格式,是webGL框架Cesium的专用格式。

主要有以下几个特点:

  1. Open

    3D Tiles是一个开放式规范,在Cesium中具有开源实现。

  2. Optimized for streaming and rendering(针对流和渲染进行了优化)

    3D Tiles主要是对大规模异构数据集的成流和渲染进行优化。3D Tiles的基础是一种空间数据结构,它支持层次结构细节级别(HLOD),只有可见的图块才会被流式传输。
    在这里插入图片描述

  3. Interactive(交互式)

    3D Tiles支持交互式选择和样式,可以单独进行模型交互。比如鼠标悬停显示建筑物、使用ID查询数据。

  4. Styleable(设置样式)

    单个模型的元数据可以在运行时用于着色而无需编写代码,样式可以即时更改。

  5. Adaptable(适应性)

    为了满足灵活性的需求,树可以是任何具有空间相干性的空间数据结构,包括k-d树,四叉树(quadtrees),八叉树(octrees),格网(grids)。

  6. Flexible(灵活)

    传统的2D地图图块,当用户放大时,可见的地图图块将被更高分辨率的地图图块替换,这称为细化。

    而3D数据集则可以在子图块下载时呈现,这称为添加剂细化,具有更大的灵活性。

  7. Heterogeneous(异构的)

    3D数据集没有可以适合所有的尺寸,批量模型需要来自实例模型的不同表示,以及来自点云的不同表示等。

    3D Tiles通过启用自适应细分,灵活细化和可扩展的切片格式集支持异构数据集。

  8. Precise(精确)

    3D Tiles提供全精度几何,避免抖动伪像,无需存储双精度值。

  9. Temporal(时间动态)

    Cesium专为时间动态可视化设计,例如卫星、无人机。

3D Tiles数据集(又称为tileset)是由一系列tile组成的树状结构。每一个tile都有一个包围体完全包围它的内容(content)。树具有空间相关性,子tile的内容完全包含在父tile的包围体内。

一个tile代表一个要素或者一个要素集,如建筑物为代表的3D模型、点云中的点和向量数据集中的点。每个tile可以引用以下四种格式中的一种:

  • Batched3DModel
  • Instanced3DModel
  • PointCloud
  • Composite

tile的内容(tile格式的一个单独实例)是一个二进制块,具有特定于格式的组件,包括功能表(Feature Table)和批处理表(Batch Table)。

批处理3D模型和实例3D模型格式基于glTF建立,glTF是为有效传输3D内容而设计的开放规范。这些格式的图块内容在二进制主体中嵌入了glTF资源,其中包含模型几何和纹理信息。点云格式未嵌入glTF。

tile以树形结构组织,其中结合了详细层次结构(HLOD)的概念,可最佳呈现空间数据。每个tile都有一个包围体积(bounding volume)属性,一个对象定义了一个完全包围其内容的空间范围。树具有空间连贯性;子tile的内容完全在父级的包围体积之内。

树可以是任何具有空间相干性的空间数据结构,包括k-d树,四叉树(quadtrees),八叉树(octrees),格网(grids)

二、3D Tiles的文件规范和单位

1. 扩展名

  • Tileset使用.json扩展名;
  • Tile的内容使用上述的四种类型(b3dm,i3dm,pnts,cmpt等);
  • 样式文件也使用.json扩展名

2. JSON的编码规范

  • JSON必须使用没有BOM的UTF-8编码。

  • 所有字符串(属性名称,枚举)仅使用ASCII字符集,并且必须以纯文本形式编写。

  • JSON对象中的名称(键)必须唯一,即不允许重复的键。

3. URIs

  • 3DTiles中的tiels使用URIs来指向外部引用,也可以将资源嵌入JSON的数据,和glTF引用二进制文件或者直接包含数据在JSON中的方式一样。

4. 单位

  • 所有线性距离的单位是米。

  • 所有角度均以弧度为单位

5. 坐标系

  • 3D Tiles使用右手笛卡尔坐标系,整体坐标系为WGS 84坐标系,但是WGS 84坐标系并
3DTiles三维模型 摘要:3DTiles是由Cesium团队开发的流式三维地理空间数据标准,基于glTF格式并引入LOD分层概念,适用于倾斜摄影、BIM模型等大规模数据可视化。其核心是通过tileset.json组织层级瓦片结构,包含b3dm、i3dm等二进制格式。数据采用四叉树/八叉树等空间索引,每个瓦片由要素表(渲染数据)和批量表(属性数据)构成。加载时通过maximumScreenSpaceError等参数优化性能,支持Web端高效渲染与交互。该标准已纳入OGC规范,成为三维地理信息领域的重要技术方案。(149字) 阅读详情

相关推荐

3d-tiles中b3dm文件读取

Batched 3D Model(.b3dm)文件,是3d-tiles中单个模型文件,按照官方的文档,是一些基本信息加上glb(Binary glTF)模型文件,参见下图的官网文件说明。 参见官方的文档。 清楚此文件的格式,就可以对文件进行操作了。 这里使用nodejs语言进行操作,关键的操作步骤如下: 按照此种方式,b3dm中包含的glb文件,也能够单独分离出来,直接可以保存成一个文件进行查看。引用内容: https://github.com/CesiumGS/3d-tiles/tree/main/sp

地理信息技术杂谈 博客,欢迎技术交流 1551

三维数据标准

三维数据标准 文章目录前言一、I3S(Indexed 3d Scene Layer,索引三维场景图层)二、S3M( Spatial 3D Model,空间三维模型)三、3D Tiles(三维瓦片) 前言 数据是进行可视化的基础,目前,基于WebGL研发三维WebGIS平台成了国内外有实力的GIS企业进行战略调整后的主攻方向。同时,应用到产品中的三维瓦片数据格式也一并被制定并公布。本文主要整理了目前常用的三维数据标准。 一、I3S(Indexed 3d Scene Layer,索引三维场景图层) ES

weixin_41039022的博客 3737

Cesium入门10 - 3D Tiles

Cesium入门10 - 3D Tiles Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 我们团队有时把Cesium描述成一个真实世界数据的3D游戏引擎。然而,使用真实世界的数据比使用典型的视频游戏数据资料要困难得多,因为真实数据可能是难以置信的高分辨率,并且需要精确的可视化。幸运的是,Cesium 与开源社...

Cesium中文网的博客 1680

3D Tiles介绍(二)

原文地址:点击打开链接 Coordinate System and Units 坐标系和单位 3D Tiles use a right-handed Cartesian coordinate system, that is, the cross product of x and y yields z. 3D Tiles define the z axis as up for l

u011295947的博客 7914

3DTiles数据

b3dm数据,能在Cesium显示,本人已测试,不同LOD的精心建模数据,josnset是根数据,

【C++】auto关键字(C++11,超详细解析,小白必看系列)

本文详细解析了C++中的“auto”关键字,介绍了其定义、基本用法、限制和高级用法,特别是与范围for循环和Lambda表达式结合的应用。

m0_73494049的博客 6万+

ZYNQ裸机LWIP双网口实现

文章目录前言一、LWIP双网口二、使用步骤1.部分说明2.部分代码总结 前言 一、LWIP双网口 由于项目需要多通讯口,查阅资料发现lwip支持多网口操作。于是,就开搞了。 二、使用步骤 1.部分说明 利用xemac_add函数在网卡链表中添加一个网卡,即使用netif块重复xemac_add操作。 先用轮询的方式实现双网口,后期修改为中断模式 2.部分代码 导入官方例程LWip echo server, 修改main函数,增加一个netif块 #if LWIP_IPV6==0 #if L..

weixin_35865280的博客 1万+

1.用Python写了一个进销存管理的软件~需求分析&界面设计&数据库设计&技术路线选择~

前端也打算用Python来写,查了很多的python库,大家比较推荐的是wxpython和QPython,之前接触过一点点的QT,确实非常强大,但是库比较重量级,自己写的这个东西明显配不上QT,又详细调研了一下wxpython,就是它了!

pepper_lihui的专栏 4321

雷电模拟器+Python 3.11:手把手教你用Frida-dexdump给安卓APK脱壳(附GDA查壳)

本文详细介绍了如何使用雷电模拟器和Python 3.11配合Frida-dexdump工具进行安卓APK脱壳的全流程。从环境配置、工具安装到脱壳操作和问题排查,提供了包含30+关键截图的保姆级教程,适合零基础用户快速上手。重点讲解了Frida工具链的使用技巧和GDA查壳方法,帮助读者掌握移动应用安全分析的基础技能。

weixin_42568801的博客 328

Xinference新手指南(一个命令直接安装成功)

对于新手,必须得学会使用docker部署,这是基本功!这里就不过多去介绍了,如果评论要出教程的话,以后再出了。

Ven%的博客 820

【DaVinci Developer专题】-41-APP SWC如何读取写入NVM Block数据

APP SWC Port如何Read读取/Write写入NVM Block数据; DaVinci Developer中的Calibration Parameter/Per-Instance Memory/Service Need如何配置。

「汽车电子助手」的博客 4481

AMD KFD的SDMA Packet 类型和定义解析

本文详细分析了AMD GPU架构中的SDMA(System Direct Memory Access)数据传输机制,重点介绍了其核心数据结构——SDMA Packet。SDMA通过8种主要Packet类型(包括内存拷贝、数据写入、屏障同步、中断触发等)实现高效主机-设备通信。每种Packet采用位域结构和联合体封装设计,在保证功能完整性的同时实现空间优化。这些Packet支持丰富的访问属性和扩展字段,适用于高性能数据搬运、内存初始化、任务同步、性能分析等场景,为GPU计算提供了灵活高效的数据传输解决方案。

图形/计算GPU的驱动与虚拟化技术分享园地 1254

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: CloudCompare软件的简单使用
下一篇: idea导入项目后,如何设置相关配置
爱情不过赛尼奥尔
博客等级 码龄8年 23粉丝 21原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值