在選中Cesium的模型對象時,需要高亮的效果,通過給模型的表面或者周邊設定高亮顔色,達到突出顯示模型的效果。
在Entity實體查找或者點選Entity時,獲得對象,通過修改Entity中model的顔色,在模型的表面覆寫一層顔色,具體的效果如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL1UERNlHNyMmckhkYqR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0QjM4ETN1gDM5IDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
将模型高亮成紅色,使用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;
效果如下圖:
更多文章請關注公衆号檢視!