Cesium中实现地形压平

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

地形压平

遇到新需求:地形与倾斜精度不一致,导致部分地形会压盖倾斜。虽然关闭地形深度测试能够解决,但是又会引发新的问题,所以决定对范围内的地形做压平处理。

地形压平与倾斜压平类似,目的是将指定范围内的地形顶点修改成设定的高程。

实现原理

地形压平原理和倾斜压平其实是一样的,甚至实现起来要更简单(在计算上更简单)。

两者无非都是,将压平高度和压平范围传入对应的顶点着色器。然后在着色器内对每个顶点判断一次是否在范围内(可利用范围的外接矩形加速计算),如果在则偏移顶点。

注意事项

与倾斜压平类似,在修改顶点后,新的顶点范围可能与包围盒范围不一致。而 Cesium 进行视椎体剔除计算时,使用的是包围盒的范围,所以有可能会导致相机靠近时,部分瓦片出现丢失的情况。

如下图所示,压平后,一号瓦片和二号瓦片的顶点均超过了包围盒范围,此时相机能同时看到两块瓦片。但是一号瓦片的包围盒不在视锥体范围内,所以会导致一号瓦片被剔除,导致显示问题。

cesium 地形压平,web,3d,图形渲染,javascript,前端
实际显示效果:

cesium 地形压平,web,3d,图形渲染,javascript,前端
解决办法是,在利用顶点着色器修改顶点的同时,还需要根据压平高度修改对应的地形瓦片包围盒

效果展示

Cesium中实现地形压平

原文链接

Cesium中实现地形压平 - 槑的秘密基地 (liaomz.top)文章来源地址https://www.toymoban.com/news/detail-577418.html

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

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

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

相关文章

  • UE4 Cesium离线生成地形

    地理空间数据云 首先进这个网址,下载对应的tif以及高程(DEM) 下载CesiumLab2 在地形切片中点击添加,将黑白图像数据,添加,选择存储类型为散列文件,选择输出路径 再选择影像切片,选择有颜色的图片,添加进入,选择存储方式为散列,选择输出路径,确认 下载nginx  

    2024年02月11日
    浏览(43)
  • cesium-影像图&地形图&3dtiles模型

    ImageryLayer类: Cesium.ImageryLayer类用于表示Cesium中的影像图层,它就相当于皮毛、衣服,将数据源包裹在内,它需要数据源(imageryProvider)为其提供内在丰富的地理空间信息和属性信息,同时,通过该类还能设置影像图层相关属 性。 常用属性如下: name(名称), alpha(透明度) bri

    2024年02月06日
    浏览(72)
  • 050:cesium加载mapbox卫星地图、mapbox地形地图

    第050个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载mapbox卫星地图、mapbox地形地图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 示例效果

    2023年04月18日
    浏览(86)
  • cesium 3dtiles地形遮挡、设置离地高度

    在开启 viewer.scene.globe.depthTestAgainstTerrain = true //开启地形深度检测 后加载3dtiles数据会导致被地形遮挡,导致3d tiles数据看不见 使用矩阵将模型高度提升

    2024年02月02日
    浏览(30)
  • Cesium for UE4 加载离线地形和影像

    编译cesium-terrain-builder cesium native 解析 TMS 影像相关代码: 参见火星科技 发布三维数据服务将上述数据发布。 1、3DTiles Terrian Builder

    2024年02月11日
    浏览(39)
  • Cesium中实现立体热力图

    在Cesium中实现热力图网上有较为成熟的案例,可参考 CesiumHeatmap 。 其原理是根据经纬度范围计算 canvas 大小,并将经纬度转化为 canvas 上的坐标。 再利用 heatmap.js 生成热力图,最后将 canvas 贴在地球上即可。 立体热力图事实上是对上面热力图功能的改造。 只不过 CesiumHeatmap

    2023年04月08日
    浏览(38)
  • Cesium中实现多光源

    在讲实现多光源之前,先了解两种不同的渲染方式:前向渲染和延迟渲染。 前向渲染是现在最基础,也是最多引擎使用的标准。前向渲染的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎

    2024年02月16日
    浏览(168)
  • Cesium中加载地形影像切片,以及3dtiles和shp及kml方法

    1geoserver影像服务 2加载cesiumlab切出的地形切片 3加载geotif 4加载geojson 5加载kml 6加载shp 效果1     未完待续

    2024年02月11日
    浏览(39)
  • Cesium 中实现影像贴 3Dtiles

    Cesium 中我们经常使用的图层服务除了常见的遥感影像,还会包括一些矢量数据(如宗地范围、规划用地、道路信息等),这些图层服务通常经过 ArcGIS Server / GeoServer 之类的服务器渲染、切片供 Cesium 展示。 但在实际应用中会发现,这些图层服务的内容会被 3DTiles 遮盖(特别是渲染

    2024年02月08日
    浏览(32)
  • Cesium中实现大量车辆实时动态行驶的方法

    在很多三维场景应用中,需要同时绘制大量的同类型个体,例如树木、野草等。在智慧城市管理应用中,也常有实时绘制大量行驶车辆的需求。要解决这个问题,用到的WebGL绘制技术叫做实例绘制(Instance Draw)。也就是对于外观样子相似的模型,WebGL可以实现数以百万计地同

    2024年02月15日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包