如何在Autodesk Forge Viewer中实现多个元素的类悬浮高亮效果
Forge Viewer 提供了对应的官方接口,支持同时给多个元素应用和原生鼠标悬浮完全一致的高亮效果,具体实现方式如下:
- 直接调用原生批量高亮接口
这个是最简便的实现方式,highlightObjects接口默认的渲染效果和鼠标悬浮触发的高亮完全一致,直接传入需要高亮的元素dbId数组即可:// 需要高亮的元素dbId集合 const targetDbIds = [101, 202, 303]; // 应用高亮 viewer.highlightObjects(targetDbIds); // 需要取消所有高亮时调用 // viewer.clearHighlightedObjects(); - 自定义高亮样式(可选)
如果你需要调整高亮的颜色、透明度,同时保持和原生高亮相同的渲染层级,避免和选中、隐藏等效果冲突,可以调用setThemingColor接口指定对应着色层级实现:// 与原生悬浮高亮一致的RGBA色值,可自行调整 const hoverHighlightColor = new THREE.Vector4(0, 0.6, 1, 0.4); const targetDbIds = [101, 202, 303]; // 批量应用高亮,多模型场景下可替换为对应model实例 targetDbIds.forEach(dbId => { viewer.setThemingColor(dbId, hoverHighlightColor, viewer.model, 1); }) // 取消该层级的高亮时调用 // viewer.clearThemingColors(viewer.model);
如果是多模型加载的场景,只需把接口中传入的viewer.model替换为对应目标元素所属的model实例,即可实现跨模型的多元素同时高亮。

内容的提问来源于stack exchange,提问作者Trung Tran
相关产品推荐
相关产品推荐

