前言
上个月是西方人的圣诞节,老外们可能都出去happy了,Cesium 1.53版的改动很少。。不过Bagnell大神笔耕不辍,几乎包揽1.53版的所有修改,而且给PBR材质带来了令人惊艳的IBL特性。
imageIBL接口
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数据好好调校一番,效果自然也不会差。
其他改进
-
Model类和Cesium3DTileset类上增加了luminanceAtZenith,用来调节程序纹理的亮度。这里的程序纹理指的是不使用上述IBL接口自定义会自动生成的环境纹理,言下之意是不能和上述IBL接口同时使用。
-
增加了双击取消对Entity的跟踪状态。Cesium的鼠标双击操作可以跟踪一个Entity对象,让Entity对象始终在屏幕中心且可以环绕视角查看。以前一旦双击跟踪了以后,再想取消,往往不好找到方法。
-
修复了Cesium1.52版独有的背景颜色不能透明的问题,我在之前的文章中曾经说过Cesium可以做到背景透明且给出了示例,不过那个示例也没法再Cesium1.52版本中使用,除非关闭HDR特效。
-
修复影响图层对比度不起作用的问题,也是上个版本新增的HDR来了的问题。
-
修复了3dtiles内部的可见性检查缺陷,可能会影响pickFromRay等操作。
网友评论