首页 > 解决方案 > 为什么 viewer.select(dbids) 会使查看器变慢并隐藏所选项目的某些部分?

问题描述

如果我选择模型的某些项目使用-

viewer.select(dbids, viewer.model, Autodesk.Viewing.SelectionType.OVERLAYED)

然后尝试放大/缩小或旋转模型,查看器会变慢。但是,如果我使用鼠标单击选择某些项目,则根本不会影响查看器。

如果我使用 -

viewer.select(dbids, viewer.model, Autodesk.Viewing.SelectionType.REGULAR)

查看器首先隐藏除所选项目之外的所有内容,稍后显示。它还隐藏所选项目的某些部分。现在导航很流畅。

这是在选择之前- 在选择项目之前

这是选择之后—— 选择项目后

有什么办法可以克服这种缓慢和隐藏部分的问题。

标签: autodesk-forgeautodesk-viewer

解决方案


让我先解释一下覆盖和常规选择突出显示之间的区别:

叠加高亮表示所选对象被渲染两次。一次使用标准材料,一次使用覆盖材料(这样它们也可以通过障碍物看到)。当然,这种双重渲染可能会对性能产生重大影响,尤其是在您选择许多对象的情况下(例如,通过在模型浏览器中选择一组大量对象)。

引入了定期突出显示以减轻性能问题。在这种情况下,不是将所选对象渲染两次,而是将它们简单地渲染一次,并将特定颜色色调应用于其常规材质。这种方法的缺点是所选对象通过障碍物不可见。

现在,对于您的问题:如果“覆盖”突出显示缓慢,“常规”选择突出显示绝对是正确的方法,但是模型的某些部分消失的事实很奇怪。我认为模型本身可能存在问题。也许它太细化或镶嵌(有太多部分或三角形),因此将“选择色调”应用于所有选定的部分需要非常长的时间。您能否使用另一种类型的 3D 模型同时尝试“叠加”和“常规”选择?如果它运行良好,您可能需要查看创建此有问题模型的应用程序的设置,并查看是否可以降低细分级别。


推荐阅读