在选中Cesium的模型对象时,需要高亮的效果,通过给模型的表面或者周边设置高亮颜色,达到突出显示模型的效果。
在Entity实体查找或者点击Entity时,获得对象,通过修改Entity中model的颜色,在模型的表面覆盖一层颜色,具体的效果如下图:
将模型高亮成红色,使用Cesium的颜色类,顺序是R\G\B\A,A是透明度,范围是0-1,所以,在使用0-255范围的颜色值时,中间需要有个值的换算。
entity.model.color = new Cesium.Color(1.0, 0, 0, 1.0);
将模型设置非高亮,可以将模型颜色设置为空,或者设置为白色:
entity.model.color = null; 或者
entity.model.color = new Cesium.Color(1.0, 1.0, 1.0, 1.0);
这样设置的时候,虽然透明度设置是不透明,但是还能看到模型,这样在模型比较小或者模型颜色比较深的时候,高亮效果不明显。
这时,可以设置模型的colorBlendMode为replace模式,这样就将模型都替换成颜色了。
entity.model.colorBlendMode = Cesium.ColorBlendMode.REPLACE;
效果如下图:
如果觉得这种替换效果不好,可以在模型周边设置轮廓线:
entity.model.silhouetteColor = new Cesium.Color(1.0, 0, 0, 1.0);
entity.model.silhouetteSize = 2.0;
效果如下图: