cesium问题-关于不同时间模型亮度不一致问题
项目中遇到发布的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问题-关于不同时间模型亮度不一致问题的更多相关文章
- oracle时间模型
Oracle在9i或者早期的版本,对于性能优化方面,主要采用命中率模型,后面的版本,也保留着命中率模型,比如在awr报告中,Instance Efficiency Percentages (Targe ...
- Oracle Time Model Statistics(时间模型统计)
Oracle数据库从10g開始,启用以时间模型统计为主.命中率为辅等性能度量指标.基于时间模型统计,主要是基于操作类型測量在数据库中花费的时间的统计信息.最重要的时间模型统计是数据库时间.或DB时间. ...
- 【Oracle】转:通过案例学调优之--Oracle Time Model(时间模型)
转自:http://blog.51cto.com/tiany/1596012 通过案例学调优之--Oracle Time Model(时间模型) 数据库时间 优化不仅仅是缩短等待时间.优化旨在缩短最终 ...
- Cesium案例解析(四)——3DModels模型加载
目录 1. 概述 2. 代码 3. 解析 4. 参考 1. 概述 Cesium自带的3D Models示例,展示了如何加载glTF格式三维模型数据.glTF是为WebGL量身定制的数据格式,在网络环境 ...
- cesium Animation显示系统时间
var d = new Date(); var hour = 0 - d.getTimezoneOffset(); viewer.animation.viewModel.timeFormatter = ...
- cesium加载纽约市3dtiles模型
const tileset = new Cesium.Cesium3DTileset({ url: '../../assets/data/NewYork/tileset.json' }); viewe ...
- [转]解决Docker容器时间与主机不一致问题
原文: https://blog.csdn.net/luckystar689/article/details/76572046 https://stackoverflow.com/questions/ ...
- Cesium官方教程7--三维模型
原文地址:https://cesiumjs.org/tutorials/3D-Models-Tutorial/ 三维模型 (3D Models) 这篇教程给大家介绍,如何在Cesium中通过Primi ...
- MySQL-时区导致的时间前后端不一致
背景 今天早上刚上班,就被同事提示,程序的日期处理有问题.数据库里日期为:2019-05-21 11:00:00 而前端显示的日期为:2019-05-21 16:00:00 分析 那肯定是和时区相关了 ...
- Ubuntu 16.04.6 + Win10 双系统时间错误且不一致
1.在Win系统下,按Win键 + R,输入regedit 运行, 2.打开注册表,按照路径查找 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet ...
随机推荐
- OpenHarmony轻量设备Hi3861芯片开发板启动流程分析
引言 OpenHarmony作为一款万物互联的操作系统,覆盖了从嵌入式实时物联网操作系统到移动操作系统的全覆盖,其中内核包括LiteOS-M,LiteOS-A和Linux.LiteOS-M内核是面向I ...
- C 语言中的 switch 语句和 while 循环详解
C 语言中的 switch 语句 替代多重 if..else 语句,可以使用 switch 语句.switch 语句用于选择多个代码块中的一个来执行 switch(表达式) { case x: // ...
- 基于Traefik如何实现向后转发自动去掉前缀?
前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易. Traefik 可以与现有的多种基础设施组件(Docker.Swarm 模式.Kubernetes.Mara ...
- 看不懂来打我,vue3如何将template编译成render函数
前言 在之前的 通过debug搞清楚.vue文件怎么变成.js文件 文章中我们讲过了vue文件是如何编译成js文件,通过那篇文章我们知道了,template编译为render函数底层就是调用了@vue ...
- HarmonyOS音频开发指导:使用AVPlayer开发音频播放功能
如何选择音频播放开发方式 在HarmonyOS系统中,多种API都提供了音频播放开发的支持,不同的API适用于不同音频数据格式.音频资源来源.音频使用场景,甚至是不同开发语言.因此,选择合适的音频 ...
- c# mvc 移除多于的视图引擎
前言 在我们的mvc中,我们又很多视图引擎是不需要的.为什么这么说呢? 我们知道计算机玩的就是遍历. 上图中我们可以看到,首先找的是index.aspx,因为我们都是cshtml,那么去映射的时候呢每 ...
- SharePreferences概念
概念 SharePreferences是一种轻量级的数据存储方式,它是以key-value的形式保存在 data/data//shared_prefs 下的xml文件中.通常使用它来保存应用中的一些简 ...
- Linux系统Mariadb初始化相关(ubuntu)
#事先声明,此文是一边写一边操作的,中间可能有不一致的地方,大体思路就是参照windows下的目录规范,将 mysql的各目录及文件进行类比放置,然后执行重建数据库命令,也许你只是想修改下data目录 ...
- gensim的word2vec的简单使用
from gensim.models import Word2Vec as wtv import jieba s1 = "刘新宇是一个自然语言处理算法工程师" s2 = " ...
- OpenYurt v1.1.0: 新增 DaemonSet 的 OTA 和 Auto 升级策略
简介: 在 OpenYurt v1.1.0 版本中,我们提供了 Auto 和 OTA 的升级策略.Auto 的升级策略重点解决由于节点 NotReady 而导致 DaemonSet升级阻塞的问题,OT ...