Cesium 1.53评测

前言

上个月是西方人的圣诞节,老外们可能都出去happy了,Cesium 1.53版的改动很少。。不过Bagnell大神笔耕不辍,几乎包揽1.53版的所有修改,而且给PBR材质带来了令人惊艳的IBL特性。

image

IBL接口

PBR指的是基于物理特性的渲染效果,让Cesium渲染的物体更加接近真实世界。而IBL则是一种伪装全局光照的方法.使用该方法可以获得较好的视觉效果并且可以达到实时渲染的目的。

其实Cesium早在1.51版就已经增加了PBR和IBL的支持,只是并未开放出IBL的定制接口出来,而Cesium自带的环境贴图效果又太差,导致渲染的效果实在没法和Three.js或者ClayGL一较高下。

直到今天增加了IBL的定制接口(specularEnvironmentMaps、sphericalHarmonicCoefficients)以后,才让渲染效果可调节,赋予了无限可能。笔者在上一个版也曾尝试修改源码自行定制IBL效果,而且渲染效果感觉也还挺不错。没想到这么快,Cesium自己就搞好了。想来我真是浪费时间,早知如此,等等就好,哈哈。

然而Cesium官方给出的IBL示例还是差强人意。我在原有示例的基础稍稍调整了一下,得到了这样的效果。如果不考虑反走样等因素的话,这个效果应该很接近Three.js和ClayGL了。

image
image

自从做Cesium以来,就一直被领导和客户反复强调Cesium的渲染效果太差,我想至少这可以证明Cesium还是很有潜力的。接下来再花时间把3dtiles数据好好调校一番,效果自然也不会差。

其他改进

  1. Model类和Cesium3DTileset类上增加了luminanceAtZenith,用来调节程序纹理的亮度。这里的程序纹理指的是不使用上述IBL接口自定义会自动生成的环境纹理,言下之意是不能和上述IBL接口同时使用。

  2. 增加了双击取消对Entity的跟踪状态。Cesium的鼠标双击操作可以跟踪一个Entity对象,让Entity对象始终在屏幕中心且可以环绕视角查看。以前一旦双击跟踪了以后,再想取消,往往不好找到方法。

  3. 修复了Cesium1.52版独有的背景颜色不能透明的问题,我在之前的文章中曾经说过Cesium可以做到背景透明且给出了示例,不过那个示例也没法再Cesium1.52版本中使用,除非关闭HDR特效。

  4. 修复影响图层对比度不起作用的问题,也是上个版本新增的HDR来了的问题。

  5. 修复了3dtiles内部的可见性检查缺陷,可能会影响pickFromRay等操作。

附录IBL修改后的示例

本地运行

官方运行

以上示例引用了github上的资源,需要能够跨域访问,可以通过类似下面的命令行来运行chrome解决跨域问题:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --disable-web-security --user-data-dir=C:/vtxf/Temp/ChromeUserData

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

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:https://cesiumjs.org/tutorials/Visualizing-Spatial-D...
    Cesium实验室阅读 43,882评论 2 18
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 前言 Cesium 在1.52版本中改进了多个渲染问题,并且增加了HDR和3dtiles数据的精确求交方法。以下详...
    vtxf阅读 4,131评论 0 4
  • 当自己所处的境遇不好的时候,更多看看自己身上的原因。 有一句话说,你现在在哪儿,是你过去两年来的选择决定的;你两年...
    江宏祥阅读 274评论 0 0
  • 转眼26个年头了,她一直这样深爱着过去丈夫的战友。尽管他一直没有离婚,也没有给她口头承若过什么,但她一直视他为丈夫...
    写作匠人阅读 499评论 2 2