经纬志
首页 / Cesium / 使用示例

逐对象轮廓后处理

用 SilhouetteStage 的 selected 属性,只给鼠标下的对象描边。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

逐对象是怎么实现的

普通后处理作用于全屏。SilhouetteStage 带一个 selected 数组,Cesium 只对这些对象做额外的模板写入,再在屏幕空间描边。

selected 放什么

放的是拾取结果对象,也就是 scene.pick 的返回值,不是 entity id。传空数组等于关闭描边。

开销

描边需要把选中对象再绘制一遍。对象少时开销可以忽略,一次选中成百上千个对象就要谨慎。

接口类型说明
createSilhouetteStage()函数创建轮廓阶段
uniforms.colorColor轮廓颜色
selectedArray参与描边的拾取对象
isSilhouetteSupported(scene)函数设备能力判断

用 scene.pick 时要判断返回值是否为 undefined,空白处移动鼠标会拿到 undefined。