项目中遇到发布的bim模型在当天不同时间的模型亮度发生变化,尤其是晚上的时候会出现模型很暗。尴了个尬,一度怀疑是自己眼睛有问题,连续几天出现同样的情况,想到可能是时间问题导致的模型亮度不同,于是测试了一下timeline,果然不出所料。

感兴趣的朋友可以试试初始化容器的时候,将timeline改为true,然后拖动时间线观察模型亮度:

网上有人提出下面解决方法:

// DirectionalLight 表示 从无限远的地方向单一方向发射的光。
viewer.scene.light = new Cesium.DirectionalLight({
direction: new Cesium.Cartesian3(0.354925, -0.890918, -0.283358)
})

经过实际体验,这个代码只是增加了1个光亮,它会让模型变的非常的亮,并且是太亮了,大大超过了普通模型的效果,所以这样做并不好。

最好从根本问题解决,解决思路:如果是cesium的时间变化让模型产生变化,那么就让cesium停留在白天的某个固定时刻,就行了。

解决代码如下:

   //时间亮度变化,只对模型起作用,对影像地图是不起作用的,影像地图亮度一直不变
function timeControl() {
//animation是动画控件,timeline是时间轴控件 //时间轴暂停,并将时间设置在某个固定时刻
viewer.clock.shouldAnimate = false;//时间轴动画停止
viewer.clock.currentTime = Cesium.JulianDate.fromIso8601("2023-09-01T06:00:00Z");//这个UTC时间对应的北京时间是14时 //时间轴启动,在某个范围内,按某个播放速度播放
// viewer.clock.shouldAnimate = true;
// viewer.clock.startTime = Cesium.JulianDate.fromIso8601("2023-09-01T00:00:00Z");//设置开始时间
// viewer.clock.stopTime = Cesium.JulianDate.fromIso8601("2023-09-01T20:20:00Z");//设置结束时间
// viewer.clock.currentTime = Cesium.JulianDate.fromIso8601("2023-09-01T06:00:00Z");//这个UTC时间对应的北京时间是14时
// viewer.clock.multiplier = 60;//若设置为3600,表示真实世界经过1秒,而在Cesium中时钟经过1小时
// viewer.clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER;
// viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP;//CLAMPED:达到终止时间后停止,LOOP_ STOP:达到终止时间后重新循环,UNBOUNDED:达到终止时间后继续读秒
// viewer.timeline.zoomTo(viewer.clock.startTime, viewer.clock.stopTime); // 显示时间范围
}

还有2行亮度设置代码,也贴出来:

        viewer.scene.globe.enableLighting = true;//true:360度地球有亮和黑的区分,亮和黑的影像地图亮度是一样的
viewer.shadows = false;//是否显示阴影

cesium问题-关于不同时间模型亮度不一致问题的更多相关文章

  1. oracle时间模型

    Oracle在9i或者早期的版本,对于性能优化方面,主要采用命中率模型,后面的版本,也保留着命中率模型,比如在awr报告中,Instance Efficiency Percentages (Targe ...

  2. Oracle Time Model Statistics(时间模型统计)

    Oracle数据库从10g開始,启用以时间模型统计为主.命中率为辅等性能度量指标.基于时间模型统计,主要是基于操作类型測量在数据库中花费的时间的统计信息.最重要的时间模型统计是数据库时间.或DB时间. ...

  3. 【Oracle】转:通过案例学调优之--Oracle Time Model(时间模型)

    转自:http://blog.51cto.com/tiany/1596012 通过案例学调优之--Oracle Time Model(时间模型) 数据库时间 优化不仅仅是缩短等待时间.优化旨在缩短最终 ...

  4. Cesium案例解析(四)——3DModels模型加载

    目录 1. 概述 2. 代码 3. 解析 4. 参考 1. 概述 Cesium自带的3D Models示例,展示了如何加载glTF格式三维模型数据.glTF是为WebGL量身定制的数据格式,在网络环境 ...

  5. cesium Animation显示系统时间

    var d = new Date(); var hour = 0 - d.getTimezoneOffset(); viewer.animation.viewModel.timeFormatter = ...

  6. cesium加载纽约市3dtiles模型

    const tileset = new Cesium.Cesium3DTileset({ url: '../../assets/data/NewYork/tileset.json' }); viewe ...

  7. [转]解决Docker容器时间与主机不一致问题

    原文: https://blog.csdn.net/luckystar689/article/details/76572046 https://stackoverflow.com/questions/ ...

  8. Cesium官方教程7--三维模型

    原文地址:https://cesiumjs.org/tutorials/3D-Models-Tutorial/ 三维模型 (3D Models) 这篇教程给大家介绍,如何在Cesium中通过Primi ...

  9. MySQL-时区导致的时间前后端不一致

    背景 今天早上刚上班,就被同事提示,程序的日期处理有问题.数据库里日期为:2019-05-21 11:00:00 而前端显示的日期为:2019-05-21 16:00:00 分析 那肯定是和时区相关了 ...

  10. Ubuntu 16.04.6 + Win10 双系统时间错误且不一致

    1.在Win系统下,按Win键 + R,输入regedit 运行, 2.打开注册表,按照路径查找     计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet ...

随机推荐

  1. Python爬取腾讯疫情实时数据并存储到mysql数据库

    思路: 在腾讯疫情数据网站F12解析网站结构,使用Python爬取当日疫情数据和历史疫情数据,分别存储到details和history两个mysql表. ①此方法用于爬取每日详细疫情数据 1 impo ...

  2. SC的板子库~

    观前须知 Sugar_Cube的博客园主页 声明 本文所有内容遵循CC BY-NC-SA 4.0 Deed原则 本文包含了笔者常用的OI算法.数据结构的模板 不保证算法最优,但能通过相应的模板题(如果 ...

  3. #线性dp#洛谷 5999 [CEOI2016]kangaroo

    题目 问有多少个长度为 \(n\) 的排列满足首项为 \(st\),末项为 \(ed\), 并且 \(\forall i\in (1,n),\left[a_{i-1}<a_i \oplus a_ ...

  4. Jetty的http-forwarded模块

    启用http-forwarded模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http-forwarded 命令的输出,如下: IN ...

  5. Git入门指南:从新手到高手的完全指南

    Git是一种强大的分布式版本控制系统,广泛应用于软件开发中.它的使用不仅可以帮助开发团队更好地管理代码,还可以提高团队协作效率和代码质量.随着软件开发的不断发展,版本控制成为了程序员必备的一项技能.G ...

  6. Python 集合(Sets)1

    集合 集合用于在单个变量中存储多个项.集合是 Python 中的 4 种内置数据类型之一,用于存储数据集合,其他 3 种是列表(List).元组(Tuple)和字典(Dictionary),它们都具有 ...

  7. 限时招募高校学生,带你沉浸式体验HDC.Together 2023

     

  8. 鸿蒙HarmonyOS实战-ArkUI组件(页面路由)

    一.路由导航 路由导航是指在应用程序中通过路径导航定位到特定页面的过程.路由导航的实现通常采用路由器(router)来进行管理,路由器根据路径的不同值将用户请求导向到不同的页面. 在HarmonyOS ...

  9. SSH的密码qsnctfwp

    开启 kali,在终端输入ssh root@challenge.qsnctf.com -p [port]可以访问远程 SSH 系统 根据提供的 passlist.txt 文件内容进行密码爆破 编写 S ...

  10. 史上最全的中高级JAVA工程师-面试题汇总

    史上最全的中高级JAVA工程师-面试题汇总 置顶 2019-10-15 18:58:32 Jeff.Smile 阅读数 34460更多 分类专栏: # 随笔 版权声明:本文为博主原创文章,遵循CC 4 ...