前言

之前介绍Cesium1.50版本的新功能时,很多人把1.50写成1.5。这两个版本可不一样,之间差了45个小版本号,1.5版本大概是Cesium三年前的版本了。

Cesium每月月初的第一个工作日出版本,这个节奏已经维持四年多了。。一直没有变化。所以小版本号一直很多,也不知道Cesium什么时候能出2.x的版本,希望届时能换个打包编译工具,也能支持一下tree-shaking。。Cesium目前编译压缩以后的版本快接近3M了,这个需求很迫切啊。。

这个月的Cesium 1.51版本,没有太多新功能,不过对上一个版本继续做了很多改进。下面再详细说明一下。

功能评测

Imagery Cutout(影像图层上挖洞)

ImageryLayer类增加了cutoutRectangle属性

输入图片说明

输入图片说明

WMS-T(time)

WebMapServiceImageryProvider新增根据时间进行动态调整影像的功能,实际上这个功能一年前已经在WMTS上支持了,Sandcastle中也有一个相关的示例。

输入图片说明

不过此次对WMS的完善,貌似还没有示例,或许以后会增加上吧。。

Atmosphere改进

Cesium在1.50版本上增加了Ground Atmosphere,这样就出现Ground Atmosphere和Sky Atmosphere两个渲染效果。1.51版本更正了Sandcastle中的示例名称,把Atmosphere改称Ground Atmosphere,Atmosphere Color改成Sky Atmosphere,这样更利于读者理解。如下图所示。

输入图片说明

Globe类上新增以下属性:atmosphereHueShift, atmosphereSaturationShift, and atmosphereBrightnessShift。这样Sky Atmosphere上的调整,也可以通过这几个变量,来同步修改Ground Atmosphere。

输入图片说明

削减release版js文件大小

Cesium的第三方库中有一个叫google-earth-dbroot-parser.js的文件,是为了加载谷歌地球服务需要用到的一个js文件。这个js文件居然有惊人的400个多k,而且Cesium还直接打包到最终的release版js文件当中。

输入图片说明

然而如果不使用谷歌地球服务的话,根本不需要用到这个文件。所以此次Cesium调整了一下策略,relese时不合并这个文件,而是在需要时再自动加载。

经过此番操作,最终gzip之后的Cesium.js文件会减少27 KB (~3.7%)。削减量貌似也不是很大。。如果Cesium以后能改成按需加载,别打包成一个整的js文件,或许会好很多。

imageBasedLightingFactor

Cesium3DTileset, Model, and ModelGraphics类型增加了imageBasedLightingFactor属性,这个变量是Cartesian2类型,分别表示环境因素(大气、星空等)导致的散射光和镜面光系数。需要注意的是数值必须在0-1之间。它的作用可以看下对比图。

正常情况下的车辆是这样的:

输入图片说明

imageBasedLightingFactor设置成(0, 0)时,相当于去掉环境光的影响,效果是这样的:

输入图片说明

另外还增加了lightColor属性(Cartesian3类型),用来调整太阳光的颜色和强度。因为可以调整强度,所以数值可以超过1。我把lightColor改成(10, 10, 0)以后的效果如下:

输入图片说明

注意点:imageBasedLightingFactor和lightColor属性,都只能在PBR材质上使用,如果某个模型并非PBR材质,这两个属性即使设置了也不起作用。

BIM示例改进

Cesium自带的BIM示例之前有一些面片闪烁的问题,目前已修复。还增加了一个Per-feature slection的选项,用来对BIM部件进行拾取。Cesium在这里提供了一种不使用style进行拾取样式设置的方法。

输入图片说明

该方法主要是通过监听tileLoad和tileUnload事件,来动态管理feature和部件的关系。通过拾取到的feature,来找到对应的部件,然后再找到该部件关联的所有feature进行变色。

tileset.tileLoad.addEventListener(function(tile) {processTileFeatures(tile, loadFeature);
});tileset.tileUnload.addEventListener(function(tile) { processTileFeatures(tile, unloadFeature); }); 

矩阵中提取欧拉角

Cesium新增Transforms.fixedFrameToHeadingPitchRoll方法,可以用来提取矩阵中的欧拉角。示例代码如下:

        var expected = new HeadingPitchRoll(0.5, 0.6, 0.7); var transform = Transforms.eastNorthUpToFixedFrame(Cartesian3.fromDegrees(0, 0)); var transform2 = Matrix4.fromTranslationQuaternionRotationScale(new Cartesian3(), Quaternion.fromHeadingPitchRoll(expected), new Cartesian3(1, 1, 1)); transform = Matrix4.multiply(transform, transform2, transform2); var actual = Transforms.fixedFrameToHeadingPitchRoll(transform); expect(actual).toEqualEpsilon(expected, CesiumMath.EPSILON10); 

欢迎关注 Cesium实验室 ,QQ群号:595512567。

输入图片说明

转载于:https://www.cnblogs.com/cesium1/p/10062933.html

Cesium 1.51新功能评测相关推荐

  1. 电子杂志制作软件iebook超级精灵2008新功能评测[转]

    电子杂志从04年发展至今已受到越来越多的认可与接受.虽然它暂时还不能完全取代纸质杂志,但是,电子杂志发展的前景不可小视.目前一些知名传统杂志依靠强大的原创内容开通了电子杂志版本:企业也陆续将传统的产品 ...

  2. 闪电邮新建html模板,非常靠谱之网易智能版闪电邮6大新功能评测

    最近,湖南卫视节目<非常靠谱>正在热播中,小编今天就为节目组推荐一款"非常靠谱"的邮件客户端软件.经小编试用,这款被称为智能版闪电邮的2.0.2正式版新配备了写信模板. ...

  3. 尼康d850相机参数测试软件,新功能介绍二:景深合成与自动调焦_尼康 D850_数码影像评测-中关村在线...

    ·新功能介绍二:景深合成与自动调焦 对于D850来说,机身也加入了非常多的新功能,这里还逐一介绍一下.首先我们要说的机身的景深合成功能.什么是景深合成?相信很多朋友都了解,相机在很多环境下,景深太浅是 ...

  4. redhat linux7版本种类,RHEL 7 新功能尝鲜:界面简洁,分类明确

    半夜起来看世界杯,没啥激情,但是又怕错误意大利和英格兰的比赛,就看了RHEL 7相关新功能的介绍(RHEL 7的下载地址:https://access.redhat.com/site/download ...

  5. Android7.0新特性、新功能

    [本文转载来自http://blog.csdn.net/hao54216/article/details/52388755] 前言: 总想写点自己的东西,因为很多Android知识网上大部分都有教程, ...

  6. Java SE 8新功能介绍:Lambda的遍历,过滤,处理集合和方法增强

    在" Java SE 8新功能导览"系列的这篇文章中,我们将深入解释并探索代码,以了解如何使用lambda表达式和方法引用 遍历集合 ,并使用谓词接口过滤它们,实现默认方法在接口中 ...

  7. 熊猫tv新功能介绍_您应该知道的4种熊猫绘图功能

    熊猫tv新功能介绍 Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e. ...

  8. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系...

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  9. Java 18 新功能介绍

    Java 18 在2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能. OpenJDK Java 18 下载:https://jdk.java. ...

  10. 浅谈测试rhel7新功能时的感受及遇到的问题

    半夜起来看世界杯,没啥激情,但是又怕错误意大利和英格兰的比赛,就看了rhel7 相关新功能的介绍. rhel7的下载地址: https://access.redhat.com/site/downloa ...

最新文章

  1. oracle emp数据库或数据误删恢复
  2. 五十九、使用ZXing生成二维码
  3. html透明度_学好Web前端开发,必要了解的HTML+CSS的技巧有哪些
  4. 解决IntelliJ IDEA报错Failed to read candidate component class: file [ ]; nested exception is org.
  5. ST:没错,又是我!继续涨价!
  6. 实例10:python
  7. Android学习之网上商城(上)
  8. 标题: ZZ- Linux 系统裁减指南(LiPS)
  9. 光复用技术中三种重要技术_【技术文章】X射线无损检测仪在锂电池行业中的重要应用...
  10. 自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
  11. ubuntu之路——day7.1 衡量模型好坏的因素偏差和方差biasvariance 以及在深度学习中的模型优化思路...
  12. 最小二乘支持向量机(LSSVM)学习记录
  13. 概率练习 (16.04.30)
  14. 二叉平衡树之AVL树【手动实现代码】
  15. Hyperledger Fabric金融区块链项目总结 之一 概述
  16. sakila-dwh-schema文件
  17. 【控制系统的微分方程】
  18. Win10 64位 hosts文件的默认内容
  19. centos7 SSH服务启动时报“main process exited, code=exited”status 255错误
  20. Flutter Bloc构建轻量级MVVM

热门文章

  1. linux如何修改telnet密码,如何修改用户SSH\telnet登陆linux时候显示的欢迎信息
  2. GitHub 标星 8w!这个开源面试总结屌爆了!
  3. java aes加密 cbc_AES加密,CBC模式,0填充
  4. 拉格朗日中值定理ξ怎么求_高等数学3.1中值定理
  5. python correlation_相关性系数介绍+python代码实现 correlation analysis
  6. 梯度下降算法动图_Deep Learning|神经网络原理学习笔记(5) :随机梯度下降算法SGD(附手绘图)、离线学习与在线学习...
  7. FR公式形态定义及运用范例
  8. java蘑菇岛种子_我的世界:Java版玩家笑开了怀,4个地图种子,2个内陆蘑菇岛...
  9. while循环python输入质数_Python学习之[while]循环
  10. 计算机学院学生会会徽设计,学生会会徽设计策划书