cesium加载3dtiles倾斜摄影数据

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

效果如图

cesium加载3dtiles倾斜摄影数据

倾斜摄影数据的地址:百度网盘 请输入提取码

提取码:ztde

1.配置nginx,代理3dtiles倾斜摄影数据服务

如我的倾斜摄影数据放在D盘的某个文件夹里面,nginx可以这样配置

cesium加载3dtiles倾斜摄影数据

cesium加载3dtiles倾斜摄影数据 

 2.代码里面3dtiles的url指向倾斜摄影服务地址,同时配置一系列的参数

3dtiles的配置参数如下,可根据项目的实际需求进行调整

let tilesetJson = {
  // url: 'http://127.0.0.1/data/3dtiles/b3dm/tileset.json',
  url: 'http://10.10.26.46/data/3dtiles/b3dm/tileset.json',
  modelMatrix: m,
  // show: true, // 是否显示图块集(默认true)
  skipLevelOfDetail: true, // --- 优化选项。确定是否应在遍历期间应用详细级别跳过(默认false)
  baseScreenSpaceError: 1024, // --- When skipLevelOfDetailis true,在跳过详细级别之前必须达到的屏幕空间错误(默认1024)
  maximumScreenSpaceError: 32, // 数值加大,能让最终成像变模糊---用于驱动细节细化级别的最大屏幕空间误差(默认16)原128
  skipScreenSpaceErrorFactor: 16, // --- 何时skipLevelOfDetail是true,定义要跳过的最小屏幕空间错误的乘数。与 一起使用skipLevels来确定要加载哪些图块(默认16)
  skipLevels: 1, // --- WhenskipLevelOfDetail是true一个常量,定义了加载图块时要跳过的最小级别数。为 0 时,不跳过任何级别。与 一起使用skipScreenSpaceErrorFactor来确定要加载哪些图块。(默认1)
  immediatelyLoadDesiredLevelOfDetail: false, // --- 当skipLevelOfDetail是时true,只会下载满足最大屏幕空间错误的图块。忽略跳过因素,只加载所需的图块(默认false)
  loadSiblings: false, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋 --- 何时确定在遍历期间skipLevelOfDetail是否true始终下载可见瓦片的兄弟姐妹(默认false)
  cullWithChildrenBounds: false, // ---优化选项。是否使用子边界体积的并集来剔除瓦片(默认true)
  cullRequestsWhileMoving: false, // ---优化选项。不要请求由于相机移动而在返回时可能未使用的图块。这种优化只适用于静止的瓦片集(默认true)
  cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除 ---优化选项。移动时用于剔除请求的乘数。较大的是更积极的剔除,较小的较不积极的剔除(默认60)原10
  preloadWhenHidden: true, // ---tileset.show时 预加载瓷砖false。加载图块,就好像图块集可见但不渲染它们(默认false)
  preloadFlightDestinations: true, // ---优化选项。在相机飞行时在相机的飞行目的地预加载图块(默认true)
  preferLeaves: true, // ---优化选项。最好先装载叶子(默认false)
  maximumMemoryUsage: 2048, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验---瓦片集可以使用的最大内存量(以 MB 为单位)(默认512)原512 4096
  progressiveResolutionHeightFraction: 0.5, // 数值偏于0能够让初始加载变得模糊 --- 这有助于在继续加载全分辨率图块的同时快速放下图块层(默认0.3)
  dynamicScreenSpaceErrorDensity: 10, // 数值加大,能让周边加载变快 --- 用于调整动态屏幕空间误差的密度,类似于雾密度(默认0.00278)
  dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先 --- 用于增加计算的动态屏幕空间误差的因素(默认4.0)
  dynamicScreenSpaceErrorHeightFalloff: 0.25, // --- 密度开始下降的瓦片集高度的比率(默认0.25)
  foveatedScreenSpaceError: true, // --- 优化选项。通过暂时提高屏幕边缘周围图块的屏幕空间错误,优先加载屏幕中心的图块。一旦Cesium3DTileset#foveatedConeSize加载确定的屏幕中心的所有图块,屏幕空间错误就会恢复正常。(默认true)
  foveatedConeSize: 0.1, // --- 优化选项。当Cesium3DTileset#foveatedScreenSpaceError为 true 时使用来控制决定延迟哪些图块的锥体大小。立即加载此圆锥内的瓷砖。圆锥外的瓷砖可能会根据它们在圆锥外的距离及其屏幕空间误差而延迟。这是由Cesium3DTileset#foveatedInterpolationCallback和控制的Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation。将此设置为 0.0 意味着圆锥将是由相机位置及其视图方向形成的线。将此设置为 1.0 意味着锥体包含相机的整个视野,禁用效果(默认0.1)
  foveatedMinimumScreenSpaceErrorRelaxation: 0.0, // --- 优化选项。当Cesium3DTileset#foveatedScreenSpaceError为 true 时使用以控制中央凹锥之外的图块的起始屏幕空间误差松弛。屏幕空间错误将从 tileset 值开始Cesium3DTileset#maximumScreenSpaceError根据提供的Cesium3DTileset#foveatedInterpolationCallback.(默认0.0)
  // foveatedTimeDelay: 0.2, // ---优化选项。使用 whenCesium3DTileset#foveatedScreenSpaceError为 true 来控制在相机停止移动后延迟瓷砖开始加载之前等待的时间(以秒为单位)。此时间延迟可防止在相机移动时请求屏幕边缘周围的瓷砖。将此设置为 0.0 将立即请求任何给定视图中的所有图块。(默认0.2)
  luminanceAtZenith: 0.2, // --- 用于此模型的程序环境贴图的天顶处的太阳亮度(以千坎德拉每平方米为单位)(默认0.2)
  backFaceCulling: true, // --- 是否剔除背面几何体。当为 true 时,背面剔除由 glTF 材质的 doubleSided 属性确定;如果为 false,则禁用背面剔除(默认true)
  debugFreezeFrame: false, // --- 仅用于调试。确定是否应仅使用最后一帧的图块进行渲染(默认false)
  debugColorizeTiles: false, // --- 仅用于调试。如果为 true,则为每个图块分配随机颜色(默认false)
  debugWireframe: false, // --- 仅用于调试。如果为 true,则将每个图块的内容渲染为线框(默认false)
  debugShowBoundingVolume: false, // --- 仅用于调试。如果为 true,则为每个图块渲染边界体积(默认false)
  debugShowContentBoundingVolume: false, // --- 仅用于调试。如果为 true,则为每个图块的内容渲染边界体积(默认false)
  debugShowViewerRequestVolume: false, // --- 仅用于调试。如果为 true,则呈现每个图块的查看器请求量(默认false)
  debugShowGeometricError: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的几何误差(默认false)
  debugShowRenderingStatistics: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的命令、点、三角形和特征的数量(默认false)
  debugShowMemoryUsage: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块使用的纹理和几何内存(以兆字节为单位)(默认false)
  debugShowUrl: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的 url(默认false)
  dynamicScreenSpaceError: true // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋 --- 优化选项。减少距离相机较远的图块的屏幕空间错误(默认false)
}

最后附上完整的代码文章来源地址https://www.toymoban.com/news/detail-509216.html

<template>
  <div>
    <div id="cesiumDemo"></div>
  </div>
</template>

<script>
let viewer
let tileset1
export default {
  name: 'guangbentiles',
  data () {
    return {
    }
  },
  created () {
  },
  mounted () {
    this.getCesiumDem()
  },
  destroyed () {
  },
  methods: {
    // 实例cesium
    getCesiumDem () {
      Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxZWFlYjAyYS0xN2JlLTQ0OTItOGNkOC05YWJlNGY0MjI2NmQiLCJpZCI6NDkyMjYsImlhdCI6MTYxNzM0NjA3N30.crkTg0Logk_JUA7BROy0r9RqTJWCi8NZpTyu4qI11Fo'
      viewer = new Cesium.Viewer('cesiumDemo', {
        animation: false, // 是否显示动画控件
        baseLayerPicker: false, // 是否显示图层选择控件
        vrButton: false, // 是否显示VR控件
        geocoder: false, // 是否显示地名查找控件
        timeline: false, // 是否显示时间线控件
        sceneModePicker: false, // 是否显示投影方式控件
        navigationHelpButton: false, // 是否显示帮助信息控件
        navigationInstructionsInitiallyVisible: false, // 帮助按钮,初始化的时候是否展开
        infoBox: false, // 是否显示点击要素之后显示的信息
        fullscreenButton: false, // 是否显示全屏按钮
        selectionIndicator: false, // 是否显示选中指示框
        homeButton: false, // 是否显示返回主视角控件
        scene3DOnly: false, // 如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
        terrainProvider: new Cesium.EllipsoidTerrainProvider({}) // 不显示地形
      })
      this.set3Dtitle3()
      viewer.camera.flyTo({
        destination: Cesium.Cartesian3.fromDegrees(113.060458, 22.640675, 180),
        orientation: {
          heading: Cesium.Math.toRadians(20),
          pitch: Cesium.Math.toRadians(-20),
          roll: 0
        }
      })
    },
    // 加速器园区
    set3Dtitle3 () {
      let translation = Cesium.Cartesian3.fromArray([0, 0, 0])
      let m = Cesium.Matrix4.fromTranslation(translation)
      let tilesetJson = {
        // url: 'http://127.0.0.1/data/3dtiles/b3dm/tileset.json',
        url: 'http://10.10.26.46/data/3dtiles/b3dm/tileset.json',
        modelMatrix: m,
        // show: true, // 是否显示图块集(默认true)
        skipLevelOfDetail: true, // --- 优化选项。确定是否应在遍历期间应用详细级别跳过(默认false)
        baseScreenSpaceError: 1024, // --- When skipLevelOfDetailis true,在跳过详细级别之前必须达到的屏幕空间错误(默认1024)
        maximumScreenSpaceError: 32, // 数值加大,能让最终成像变模糊---用于驱动细节细化级别的最大屏幕空间误差(默认16)原128
        skipScreenSpaceErrorFactor: 16, // --- 何时skipLevelOfDetail是true,定义要跳过的最小屏幕空间错误的乘数。与 一起使用skipLevels来确定要加载哪些图块(默认16)
        skipLevels: 1, // --- WhenskipLevelOfDetail是true一个常量,定义了加载图块时要跳过的最小级别数。为 0 时,不跳过任何级别。与 一起使用skipScreenSpaceErrorFactor来确定要加载哪些图块。(默认1)
        immediatelyLoadDesiredLevelOfDetail: false, // --- 当skipLevelOfDetail是时true,只会下载满足最大屏幕空间错误的图块。忽略跳过因素,只加载所需的图块(默认false)
        loadSiblings: false, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋 --- 何时确定在遍历期间skipLevelOfDetail是否true始终下载可见瓦片的兄弟姐妹(默认false)
        cullWithChildrenBounds: false, // ---优化选项。是否使用子边界体积的并集来剔除瓦片(默认true)
        cullRequestsWhileMoving: false, // ---优化选项。不要请求由于相机移动而在返回时可能未使用的图块。这种优化只适用于静止的瓦片集(默认true)
        cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除 ---优化选项。移动时用于剔除请求的乘数。较大的是更积极的剔除,较小的较不积极的剔除(默认60)原10
        preloadWhenHidden: true, // ---tileset.show时 预加载瓷砖false。加载图块,就好像图块集可见但不渲染它们(默认false)
        preloadFlightDestinations: true, // ---优化选项。在相机飞行时在相机的飞行目的地预加载图块(默认true)
        preferLeaves: true, // ---优化选项。最好先装载叶子(默认false)
        maximumMemoryUsage: 2048, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验---瓦片集可以使用的最大内存量(以 MB 为单位)(默认512)原512 4096
        progressiveResolutionHeightFraction: 0.5, // 数值偏于0能够让初始加载变得模糊 --- 这有助于在继续加载全分辨率图块的同时快速放下图块层(默认0.3)
        dynamicScreenSpaceErrorDensity: 10, // 数值加大,能让周边加载变快 --- 用于调整动态屏幕空间误差的密度,类似于雾密度(默认0.00278)
        dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先 --- 用于增加计算的动态屏幕空间误差的因素(默认4.0)
        dynamicScreenSpaceErrorHeightFalloff: 0.25, // --- 密度开始下降的瓦片集高度的比率(默认0.25)
        foveatedScreenSpaceError: true, // --- 优化选项。通过暂时提高屏幕边缘周围图块的屏幕空间错误,优先加载屏幕中心的图块。一旦Cesium3DTileset#foveatedConeSize加载确定的屏幕中心的所有图块,屏幕空间错误就会恢复正常。(默认true)
        foveatedConeSize: 0.1, // --- 优化选项。当Cesium3DTileset#foveatedScreenSpaceError为 true 时使用来控制决定延迟哪些图块的锥体大小。立即加载此圆锥内的瓷砖。圆锥外的瓷砖可能会根据它们在圆锥外的距离及其屏幕空间误差而延迟。这是由Cesium3DTileset#foveatedInterpolationCallback和控制的Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation。将此设置为 0.0 意味着圆锥将是由相机位置及其视图方向形成的线。将此设置为 1.0 意味着锥体包含相机的整个视野,禁用效果(默认0.1)
        foveatedMinimumScreenSpaceErrorRelaxation: 0.0, // --- 优化选项。当Cesium3DTileset#foveatedScreenSpaceError为 true 时使用以控制中央凹锥之外的图块的起始屏幕空间误差松弛。屏幕空间错误将从 tileset 值开始Cesium3DTileset#maximumScreenSpaceError根据提供的Cesium3DTileset#foveatedInterpolationCallback.(默认0.0)
        // foveatedTimeDelay: 0.2, // ---优化选项。使用 whenCesium3DTileset#foveatedScreenSpaceError为 true 来控制在相机停止移动后延迟瓷砖开始加载之前等待的时间(以秒为单位)。此时间延迟可防止在相机移动时请求屏幕边缘周围的瓷砖。将此设置为 0.0 将立即请求任何给定视图中的所有图块。(默认0.2)
        luminanceAtZenith: 0.2, // --- 用于此模型的程序环境贴图的天顶处的太阳亮度(以千坎德拉每平方米为单位)(默认0.2)
        backFaceCulling: true, // --- 是否剔除背面几何体。当为 true 时,背面剔除由 glTF 材质的 doubleSided 属性确定;如果为 false,则禁用背面剔除(默认true)
        debugFreezeFrame: false, // --- 仅用于调试。确定是否应仅使用最后一帧的图块进行渲染(默认false)
        debugColorizeTiles: false, // --- 仅用于调试。如果为 true,则为每个图块分配随机颜色(默认false)
        debugWireframe: false, // --- 仅用于调试。如果为 true,则将每个图块的内容渲染为线框(默认false)
        debugShowBoundingVolume: false, // --- 仅用于调试。如果为 true,则为每个图块渲染边界体积(默认false)
        debugShowContentBoundingVolume: false, // --- 仅用于调试。如果为 true,则为每个图块的内容渲染边界体积(默认false)
        debugShowViewerRequestVolume: false, // --- 仅用于调试。如果为 true,则呈现每个图块的查看器请求量(默认false)
        debugShowGeometricError: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的几何误差(默认false)
        debugShowRenderingStatistics: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的命令、点、三角形和特征的数量(默认false)
        debugShowMemoryUsage: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块使用的纹理和几何内存(以兆字节为单位)(默认false)
        debugShowUrl: false, // --- 仅用于调试。如果为 true,则绘制标签以指示每个图块的 url(默认false)
        dynamicScreenSpaceError: true // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋 --- 优化选项。减少距离相机较远的图块的屏幕空间错误(默认false)
      }
      tileset1 = new Cesium.Cesium3DTileset(tilesetJson)
      // 非异步加载
      // viewer.scene.primitives.add(tileset)
      // 异步加载
      tileset1.readyPromise.then(function (tileset) {
        viewer.scene.primitives.add(tileset1, 1)
      }).otherwise(function (error) {
        console.log(error)
      })
      tileset1.allTilesLoaded.addEventListener(function () {
        console.log('模型已经全部加载完成')
      })
    }
  }
}
</script>
<style scoped>
#cesiumDemo {
  width: 100vw;
  height: 100vh;
}
/* 隐藏cesium标志 */
.cesium-viewer .cesium-widget-credits {
  display: none;
}
</style>

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

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

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

相关文章

  • mapbox+deck.gl加载倾斜摄影模型3dtiles

    mapbox+deck.gl加载倾斜摄影模型3dtiles

    做三维WebGIS开发的朋友们都知道,我们加载倾斜摄影模型,一般使用cesium加载3dtiles格式的数据很简单,官网和网上都有很多例子,这里也不再详细赘述。但是在使用cesium场景中我们会遇到这样一个问题,在加载整个球的时候其实是影响了性能的,在加载局部小场景的时候我们

    2024年02月02日
    浏览(72)
  • Three.js开发神器-结合3DTiles插件加载倾斜摄影模型

    Three.js开发神器-结合3DTiles插件加载倾斜摄影模型

    首先我们通过链接和图片来看看效果 演示Demo链接地址:https://n3gis.github.io/exportToThree(3.0).html?scene=Demo_4 使用到的软件(软件大家到Unity商城上搜索,Unity商城地址:https://assetstore.unity.com) Unity3D 3DTiles(Unity3D插件,用于加载OSGB格式的倾斜摄影数据) Export To Three.js(Unity3D插件,

    2023年04月20日
    浏览(100)
  • cesium加载显示点云及倾斜模型(3dtiles)

    cesium加载显示点云及倾斜模型(3dtiles)

            在cesium加载并显示点云或者倾斜模型之前,需要将不同格式的数据转为3dtiles,具体参考倾斜、点云转3dtiles(osgb、las转3dtiles)切片         转换完成后就可以写代码将其加载到cesium地球上。         有时候加载完成并不能贴地显示,或者贴地显示的具体位置和底

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

    Cesium介绍及3DTiles数据加载时添加光照效果对比

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

    2024年01月25日
    浏览(46)
  • Cesium结合GIS天地图 加载倾斜摄影3dtile + vue3

    Cesium结合GIS天地图 加载倾斜摄影3dtile + vue3

    将倾斜摄影OSGB数据转换为3dtile(转换方式很多,可以利用第三方工具cesiumlab) 利用Cesium加载GIS地图,我这里使用的是天地图,可以加载其他地图都行 加载3dtile数据到地图中展示 以加载天地图为例,需要先到天地图官网去申请开发者,获取一个token,以下代码直接粘贴就行,注释

    2024年02月11日
    浏览(43)
  • Cesium.js加载3dTiles格式倾斜摄模型影悬浮空中的解决办法

    Cesium.js加载3dTiles格式倾斜摄模型影悬浮空中的解决办法

    在之前的博文中,已经讲过如何在Cesium中加载3dTiles格式的倾斜摄影模型(Cesium加载3D Tiles模型)。最近发现一个问题,新加载的倾斜摄影模型,都漂浮在空中,无法很好的贴合地面。分析了一些这个问题,可能是由于以下原因造成的: 飞行器的精度 倾斜摄影的参数问题 Ces

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

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

    2024年02月03日
    浏览(45)
  • cesium——加载3DTiles,模型的选中,高亮效果

    cesium——加载3DTiles,模型的选中,高亮效果

    3DTiles是一种用于组织和传输大规模地理数据的规范,旨在提供一种高效、可扩展的方式来加载和显示复杂的3D模型。它革新了地理数据可视化领域,为创建逼真的三维地图提供了新的可能性。 3DTiles采用了一种层次化的数据结构,将地理信息按照空间范围划分成小块,类似于

    2024年02月07日
    浏览(48)
  • OSGB 倾斜摄影数据处理为 3DTiles、I3S、S3M 的流程

    OSGB 倾斜摄影数据处理为 3DTiles、I3S、S3M 的流程

    HONG KONG GEODATA STORE 从该网站下载倾斜摄影数据(OSGB)格式。 点击 Notes,可以下载元数据文件(meta.xml) 将下载的 zip 包,逐一解压,放到同级目录下。 解压前: 由于下载的 zip 包名称为 7-NW-9B-1、7-NW-9B-2 等的名称,还不符合 OSGB 倾斜摄影数据处理的文件夹目录结构,需要在解

    2024年02月10日
    浏览(13)
  • Unity加载3dTile倾斜摄影数据(WebGL)

    Unity加载3dTile倾斜摄影数据(WebGL)

    1.支持.b3dm(3dtile)格式倾斜摄影数据加载,支持osgb格式倾斜摄影数据加载 2.支持编辑器下加载预览,方便进行场景编辑 3.支持海量的数据量加载 4.多线程LOD算法动态加载卸载 5.支持urp,hdrp等渲染管线 6.支持PC,WebGL,Android平台发布 qq交流:1749568798 +VX : huazaikv 相关视频: unity

    2024年02月11日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包