参加公众号文章:​​分享:实现Cesium的地下模式效果​​,这里主要是如何修改Cesium的源码,才能达到实现地下模式的效果。

修改完源码后,在执行地下模式的时候,设置地图的底色,要同步将地图影像进行半透明的操作,并且还要刷新一下影像图层,及时显示效果。

//设置地图basecolor为透明色
viewer.scene.globe.baseColor = new Cesium.Color(1, 1, 1, 0);
//循环设置影像的透明度
var _mapAlpha = 0.5;
if (viewer.imageryLayers) {
for (var i = 0; i < viewer.imageryLayers.length; i++) {
viewer.imageryLayers.get(i).alpha = _mapAlpha;
}
}
//刷新全部的影像切片
viewer.scene.globe._surface.invalidateAllTiles();

地表透明的效果,显示半地上地下

Cesium开发:地下模式效果(续)_图层

上图的效果中,实现了地下模式的透明,但是,地下还浮着一块阴影,这是Cesium自带的大气效果,需要关掉就不存在这种效果了。

 viewer.scene.skyAtmosphere.show = false;

Cesium开发:地下模式效果(续)_解决方案_02

上图就不存在黑色阴影的问题,整个场景都变成黑色了,所以,在使用地图的时候,暗色系的底图,会显得很黑,看不清具体的效果。

当然要是有好的解决方案,可以留言提示。