Cesium 中实现影像贴 3Dtiles

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

Cesium 中实现影像贴 3Dtiles

Cesium 中我们经常使用的图层服务除了常见的遥感影像,还会包括一些矢量数据(如宗地范围、规划用地、道路信息等),这些图层服务通常经过 ArcGIS Server / GeoServer 之类的服务器渲染、切片供 Cesium 展示。

但在实际应用中会发现,这些图层服务的内容会被 3DTiles 遮盖(特别是渲染大片倾斜数据时),这个时候,如果我们想获取这些图层上面的信息,就必须将上层的 3DTiles 隐藏。如下图所示(没有合适的矢量图层,用 TileCoordinatesImageryProvider 代替)

Cesium 中实现影像贴 3Dtiles,3d,图形渲染,web,算法,javascript

影像有贴 3DTiles 选项吗?

在原生的 Cesium 中影像是无法设置贴 3DTiles 的

Cesium 的影像为什么没有贴 3DTiles 选项

如果稍微翻一下源码,可以很容易的发现,影像和地形是交给 Globe 对象去管理的,而 3DTilesprimitiveentity 这类物体则是由 Scene 管理。

Viewer 对象中,GlobeScene 是同级别的存在,所以影像和 3DTiles 根本不属于同一套管理体系,Cesium 自然无法提供影像贴 3DTiles 选项。

实现影像贴 3Dtiles

了解了为什么原生 Cesium 无法实现影像贴 3DTiles 的原因,那么解决的方向就明确了。

做法是在 Scene 中创建一个对象管理影像,使得影像可以和 3DTiles 由同一个对象管理。那么怎么做呢?

翻看源码,可以发现在 Globe 中影像和地形实际上是由 QuadtreePrimitive 对象来进行统一管理的。这是一个复杂的渲染四叉树的 Primitive。详细渲染过程参考文章 最复杂的地球皮肤 影像与地形的渲染与下载过程

因此我们只需要将 QuadtreePrimitive 改写成普通 Primitive 的形式,保留影像操作的部分,并且将地形的部分删除,转而将影像的载体修改为 GroundPrimitive 即可。

简单的效果展示(没有合适的矢量图层,用 TileCoordinatesImageryProvider 代替)

Cesium 中实现影像贴 3Dtiles,3d,图形渲染,web,算法,javascript

实际效果展示

Cesium中实现影像贴3Dtiles文章来源地址https://www.toymoban.com/news/detail-717953.html

原文链接

Cesium中实现影像贴3Dtiles

到了这里,关于Cesium 中实现影像贴 3Dtiles的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Cesium 3Dtiles偏移调整

    Cesium 3Dtiles偏移调整可以通过以下步骤进行: 根据前后经纬度和高度计算变换矩阵-平移矩阵: step1: 根据tileset的边界球体中心点的笛卡尔坐标得到经纬度坐标。 step2: 根据经纬度和高度0,得到地面笛卡尔坐标。 step3: 根据经纬度和需要的高度,得到偏移后的笛卡尔坐标。 st

    2024年01月25日
    浏览(45)
  • 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日
    浏览(90)
  • Cesium入门之十:Cesium加载3DTiles数据

    3DTiles是一种面向网格化、可展示的大规模三维空间数据格式,专门为流式传输和渲染海量3D地理空间数据而设计的,用于存储和管理基于网格的三维模型数据。其数据结构基于B3DM和PNTS格式,可以支持多个级别的LOD,并使用Tilesets(瓦片集合)来组织和管理数据。3DTiles具有以

    2024年02月12日
    浏览(55)
  • Cesium clipping planes 3dtiles模型剖切 3dtiles模型贴地 vue代码

    使用Cesium的clippingPlanes实现对3dtiles模型的剖切效果。 相关官方文档地址:ClippingPlaneCollection、Cesium3DTileset 官方Demo地址:3D Tiles Clipping Planes 官方介绍:Cesium Feature Highlight: Clipping Planes 函数用于加载和显示3D Tiles模型以及剪切平面clipping planes。 在函数内部,首先创建了一个 Cesium.P

    2024年04月23日
    浏览(37)
  • 【Cesium】调整3dtiles模型的光照

    最近有个项目需要把掘进车放到巷道里面,加载出来的效果一片漆黑,看不清模型细节。  由于Cesium中材质没有自发光的设置,所以只能设置光源。 在网上查了一些代码,Cesium的光照效果的设置是通过webgl修改白膜的材质来实现的,由于巷道本身有贴图材质,用该方法实现的

    2024年02月11日
    浏览(52)
  • cesium加载3dtiles倾斜摄影数据

    效果如图 倾斜摄影数据的地址:百度网盘 请输入提取码 提取码:ztde 1.配置nginx,代理3dtiles倾斜摄影数据服务 如我的倾斜摄影数据放在D盘的某个文件夹里面,nginx可以这样配置    2.代码里面3dtiles的url指向倾斜摄影服务地址,同时配置一系列的参数 3dtiles的配置参数如下,可

    2024年02月11日
    浏览(50)
  • Cesium地图上加载3DTiles模型

    1,使用Blender创建模型: 官网下载Blender:https://www.blender.org/,在Github上下载Building Tools插件,通过编辑-偏好设置-插件-安装,导入压缩包使用,这个可以自己创建小房子,文件-导出为obj格式 2,将.obj转成3dtiles格式: 1,第一种方法通过加载本地文件展示: 1,github下载ObjTo3

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

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

    2024年02月11日
    浏览(92)
  • Cesium 加载3Dtiles数据-最佳方法对比

            Cesium加载空间数据的方法有很多种,网络上关于3Dtiles数据集加载的废话连篇,看着就很无语。这里我本人直抒胸臆,简单介绍一下数据的加载方式。         先打开Cesium的深度检测的开关,也可以不打开。                完成以上步骤后,利用Cesium的readyPromi

    2024年02月11日
    浏览(97)
  • cesium中3dtiles贴地问题设置

    当我们转换得到3dtiles格式数据后,将数据添加到cesium中:   模型可能出现以下不贴地的情况: 对于此类问题,解决办法参考如下: 模型定位: 修改后,模型贴地显示如下(设置不同的偏移量可以获得不同高度的模型): 

    2024年02月11日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包