首页 / Cesium / 使用示例
逐对象轮廓后处理
用 SilhouetteStage 的 selected 属性,只给鼠标下的对象描边。
源码与运行效果
逐对象是怎么实现的
普通后处理作用于全屏。SilhouetteStage 带一个 selected 数组,Cesium 只对这些对象做额外的模板写入,再在屏幕空间描边。
selected 放什么
放的是拾取结果对象,也就是 scene.pick 的返回值,不是 entity id。传空数组等于关闭描边。
开销
描边需要把选中对象再绘制一遍。对象少时开销可以忽略,一次选中成百上千个对象就要谨慎。
| 接口 | 类型 | 说明 |
|---|---|---|
createSilhouetteStage() | 函数 | 创建轮廓阶段 |
uniforms.color | Color | 轮廓颜色 |
selected | Array | 参与描边的拾取对象 |
isSilhouetteSupported(scene) | 函数 | 设备能力判断 |
用 scene.pick 时要判断返回值是否为 undefined,空白处移动鼠标会拿到 undefined。