autodesk-forge - 为什么 viewer.select(dbids) 会使查看器变慢并隐藏所选项目的某些部分?
问题描述
如果我选择模型的某些项目使用-
viewer.select(dbids, viewer.model, Autodesk.Viewing.SelectionType.OVERLAYED)
然后尝试放大/缩小或旋转模型,查看器会变慢。但是,如果我使用鼠标单击选择某些项目,则根本不会影响查看器。
如果我使用 -
viewer.select(dbids, viewer.model, Autodesk.Viewing.SelectionType.REGULAR)
查看器首先隐藏除所选项目之外的所有内容,稍后显示。它还隐藏所选项目的某些部分。现在导航很流畅。
有什么办法可以克服这种缓慢和隐藏部分的问题。
解决方案
让我先解释一下覆盖和常规选择突出显示之间的区别:
叠加高亮表示所选对象被渲染两次。一次使用标准材料,一次使用覆盖材料(这样它们也可以通过障碍物看到)。当然,这种双重渲染可能会对性能产生重大影响,尤其是在您选择许多对象的情况下(例如,通过在模型浏览器中选择一组大量对象)。
引入了定期突出显示以减轻性能问题。在这种情况下,不是将所选对象渲染两次,而是将它们简单地渲染一次,并将特定颜色色调应用于其常规材质。这种方法的缺点是所选对象通过障碍物不可见。
现在,对于您的问题:如果“覆盖”突出显示缓慢,“常规”选择突出显示绝对是正确的方法,但是模型的某些部分消失的事实很奇怪。我认为模型本身可能存在问题。也许它太细化或镶嵌(有太多部分或三角形),因此将“选择色调”应用于所有选定的部分需要非常长的时间。您能否使用另一种类型的 3D 模型同时尝试“叠加”和“常规”选择?如果它运行良好,您可能需要查看创建此有问题模型的应用程序的设置,并查看是否可以降低细分级别。
推荐阅读
- ios - 如何使子视图适合 HStack 中的所有可用垂直空间?
- python - 如何将 Bootstrap4 表单相关类应用于 Django (v3) UserCreationForm 中的字段?
- zsh - 这段 zsh 代码是如何记录时间的?好像没有约会什么的
- python - 在 Windows 中安装多语言
- css - CSS - 在 a 下显示子项目的问题
- python - Opencv中分割字符的掩码
- html - 我不能将元素与引导程序放在同一行
- java - 将 java.awt.geom.Rectangle2D 转换为 javafx.geometry.Rectangle2D 时出错
- mysql - mysql数据库的分片逻辑
- javascript - 如何从长字符串值中获取前 25 个字符,并在 MVC 的工具提示中显示完整值?