三维数据格式3DTiles

这篇具有很好参考价值的文章主要介绍了三维数据格式3DTiles。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、3D Tiles来源和介绍

它是Cesium于2016年3月定义的一种三维模式瓦片数据结构,它将海量的三维数据用分块、分层的形式组织起来,很大程度上减轻了浏览器的负担,除此外还提供了细节层次的LOD(Levels of Detail 多细节层次)功能,在远观时,降低模型的面数和精度,拉近后再将细节加载出来,大大增强了页面的加载速度,更可以用于跨桌面使用,使得web端和移动应用程序共享,主要适用于静态场景

二、3D Tiles数据特点

  1. 开放性
    它是一个开放式的数据规范,我们可以根据实际需求设定三维模型的大小和范围,此外还能适配多种空间分区方案,如:普通网格、四叉树、八叉树等

    四叉树:它是一种树形数据结构,它的每个节点下之多可以有四个子节点。通常把二维空间细分为四个区域,并把该区域里的相关信息存入到四叉树节点中,四叉树的每一个节点代表一个矩形区域,每一个矩形区域又可分为四个小矩形区域

    八叉树:相比四叉树,八叉树是将二维空间延伸到了三维空间,树种的子节点只会有八个或者零个,每一个节点同样用于存储数据

  2. 异质性
    支持将不同类型的三维模型数据,如普通模型数据加倾斜摄影数据加自绘几何数据放在一起,转化为统一标准的数据集,让它们可以在同一场景下显示出来

  3. 专为三维可视化设计
    专为三维可视化设计,并在其中引入了图形领域的技术,在不满足特定条件的情况下,并不会对场景内的模型做整个渲染,而是只会渲染个轮廓,大大降低了计算量,使得浏览器请求到数据后,渲染的流程也更加的简单。同时,因为三维模型预先处理成了分块的三维瓦片格式,所以也减少了WebGL绘制请求的数量。

  4. 可交互性
    其支持对加载模型的拾取,和样式的修改,大量加载以后,可以对其中的单独模型进行交互,如:高亮显示鼠标悬停处的模型、或进行删除等,也可根据建筑模型的高度和年代,设置不同的显示效果而不需要重新更新代码

三、3D Tiles格式文件代码详解

3D Tiles的格式是由两个部分组成的:
其一是如下的json格式的数据,这里的asset是一个包含整体tileset元素属性的对象,其中的version属性是定义3D Tiles版本的字符串,此外这里还可以选填一个tilesetVersion属性,它可以用于定义特定应用中的版本号,geometricError属性定义了一个非误差单位,低于这个误差值,瓦片集不会被渲染(单位:米),root属性用于定于根瓦片。它的子项transform也是一个可选项,它的作用是在加载大量模型或者建筑物的情况下,单个模型的点云瓦片集能在它自己的坐标系中定义,其内的数据是一个4*4的仿射变换矩阵,以列主序存储,用来实现从瓦片局部坐标系到父瓦片或根瓦片坐标系的变换。root内部也有一个geometricError属性,前者是整个瓦片不被渲染的误差,后者只是当前瓦片集被渲染的误差。content属性通过url引入文件,其支持的二进制文件格式有.b3dm、.i3dm、.pnts等,甚至可以在其中再放入一个3D Tiles文件,前提是不可以自己引用自己。content上方的refine属性定义的是LOD细化的方法,简单来说就是瓦片是如何切换的。
构成3D Tiles的第二部分就是其引用的瓦片数据文件了,.b3dm就是我们用于渲染数据的文件

//json文件
{
  "asset": {
    "version": "1.0"
  },
  "geometricError": 70,
  "root": {
    "boundingVolume": {
      "box": [
        0,
        0,
        10,
        100,
        0,
        0,
        0,
        100,
        0,
        0,
        0,
        10
      ]
    },
    "transform": [
      0.9686356343768792,
      0.24848542777253735,
      0,
      0,
      -0.15986460744966327,
      0.623177611820219,
      0.765567091384559,
      0,
      0.19023226619126932,
      -0.7415555652213445,
      0.6433560667227647,
      0,
      1215011.9317263428,
      -4736309.3434217675,
      4081602.0044800863,
      1
    ],
    "geometricError": 70,
    "refine": "ADD",
    "content": {
      "uri": "buildings.b3dm"
    },
    "children": [
      {
        "boundingVolume": {
          "box": [
            0,
            0,
            0,
            100,
            0,
            0,
            0,
            100,
            0,
            0,
            0,
            15
          ]
        },
        "transform": [
          0.35355339059327373,
          0.3535533905932738,
          0,
          0,
          -0.3535533905932738,
          0.35355339059327373,
          0,
          0,
          0,
          0,
          0.5,
          0,
          0,
          0,
          5,
          1
        ],
        "geometricError": 0,
        "content": {
          "uri": "instances.i3dm"
        }
      }
    ]
  }
}

四、3D Tiles数据使用方法

b3dm格式瓦片集主要用于加载批量的模型,pnts格式瓦片集用于加载点云数据模型,cmpt瓦片集,允许一个cmpt文件内嵌多个其他类型的瓦片。文章来源地址https://www.toymoban.com/news/detail-401059.html

// 3DTiles并不是Entity的一部分,而是属于更加底层的primitives
var tileset = viewer.scene.primitives.add(
  // 用于实例化
  new Cesium.Cesium3DTileset({
    // 放入json文件的路径
    url:"../../lib/TilesetWithViewerRequestVolume/tileset.json",
    maximumScreenSpaceError: 2, //最大的屏幕空间误差,数字越低,视觉效果越好
    maximumNumberOfLoadedTiles: 1000, // 最大加载瓦片个数用于给定一定的限制,防止数据量过大,占用内存过高
  })
)

到了这里,关于三维数据格式3DTiles的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何实现倾斜摄影三维模型OSGB格式转换3DTILES格式的模型轻量化和格式转换一体化处理?

    如何实现倾斜摄影三维模型OSGB格式转换3DTILES格式的模型轻量化和格式转换一体化处理?  为了实现倾斜摄影三维模型OSGB格式的轻量化和3DTILES格式转换的一体化处理,可以采用以下方法: 1、数据预处理 在进行格式转换之前,需要对OSGB格式的倾斜摄影三维模型进行预处理。

    2024年01月21日
    浏览(64)
  • 倾斜摄影三维模型的OSGB、3DTiles格式的层级划分和块大小划分规则浅析

    倾斜摄影三维模型的OSGB、3DTiles格式的层级划分和块大小划分规则浅析  倾斜摄影三维模型是一种基于倾斜摄影技术获取的高精度三维地图,可以用于城市规划、建筑设计、公共安全等领域。在数字化建设中,OSGB和3DTiles是两种常见的数据格式,它们都支持倾斜摄影三维模型的

    2024年02月16日
    浏览(44)
  • cesium加载三维模型3dtiles

    目的:为避免跨域 输入cmd命令 python3 -m http.server 5500 http://127.0.0.1:5500/data/mars3d-max-shihua-3dtiles-master/tileset.json http://127.0.0.1:5500/cesium/cesium%E5%8A%A0%E8%BD%BD3dtile2.html

    2024年02月13日
    浏览(89)
  • Cesium:3DTiles三维模型高度调整

            地形遮挡属性          如下两张图所示,输入高度值,根据需要调整模型高度。例如:针对近地面的管线数据,可能有一部分是埋在地下的,那么,如果开启了地形遮挡属性(即:设置为true,默认是false),那么,在进行场景渲染加载模型切片时,就会进行深度测

    2024年02月11日
    浏览(92)
  • 谷歌倾斜摄影数据获取以及转换3DTiles介绍

    2005年谷歌地球横空出世,将地球以三维可视化方式展现在每一个电脑屏幕前的用户,掀起了数字地球热潮,而随着三维倾斜摄影模型数据的加入,将谷歌地球对全球的三维可视化效果表达,提升到了更高的层次。作为全球三维倾斜摄影覆盖面积最广的三维数字地球平台,谷歌

    2024年02月03日
    浏览(44)
  • Cesium介绍及3DTiles数据加载时添加光照效果对比

    Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。熟悉GIS开发领域的读者都知道,Cesium是一个用于创建3D地理空间应用程序的开源JavaScript库,它允许开发人员在Web浏览器中构建高性能的虚拟地球应用,支持

    2024年01月25日
    浏览(52)
  • 基于Node.js的3DTiles三维倾斜摄影模型爬虫

    随着小型无人机的普及,乡村级的倾斜摄影模型构建已经越来越简单。一个无人机和一名飞手2个小时内就可以完成。在做WebGIS和Cesium开发时,3DTiles是一种常用的倾斜摄影三维模型的切片格式。3DTiles格式通常有散列和紧凑两种文件组织形式,其中不同工具生成的散列数据使用

    2023年04月17日
    浏览(40)
  • 【ContextCapture 】建模与 【CesiumLab】OSGB 格式转 3DTiles 格式

    该文章描述了 ContextCapture 将无人机影像进行建模得到OSGB格式的三维模型以及采用 CesiumLab 将构建的OSGB格式模型转换成3DTiles格式模型的流程。 ContextCapture安装后有如图三个程序。 1.1 项目创建 点击ContextCapture Center Master,进行项目的创建。项目名称需为英文。 1.2 影像导入 新建

    2023年04月08日
    浏览(38)
  • 谷歌地球倾斜模型3Dtiles格式cesium格式一键导入查看

    台湾省倾斜模型ceisum 3Dtiles格式谷歌地球谷歌地 大家好我是谷谷GIS的开发者,为大家分享一下这个台湾省的,倾斜模型3Dtiles,这个模型3Dtiles的话它是基于cesium,3D倾斜模型3Dtiles,它的格式内容的话是模型3Dtiles,众所周知,这cesium是3D地球引擎来说的话,现在目前这个市场占比

    2024年02月11日
    浏览(53)
  • Unity倾斜摄影开发-Unity加载3DTiles格式的倾斜摄影模型

    首先看看Unity加载3DTiles格式的效果 首先使用上一章节生成的osgb格式的倾斜摄影模型,上节地址:Unity倾斜摄影开发-航拍图片生成3mx和OSGB模型_虚拟现实(微尘)的博客-CSDN博客 使用软件  Unity3d 3DTiles(Unity3d插件,大家可以到Unity商城中下载,下载地址:3DTiles | Modeling | Unity A

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包