Forge-Event中的大型模型可设置无延迟/刷新的ProgressiveDisplay

我使用Forge查看器,并且我有一个很大的模型,所以每当我移动它时,它都会用非常恼人的闪烁刷新视图。

我尝试将ProgressiveDisplay手动设置为false,这似乎是一个很好的选项,但如果我使用Autodesk.Viewing.Initializer()中的代码将其设置为FALSE,则在模型完全呈现并可在窗口中导航之前需要太多时间。这不是这种模式的选择。我已经使用了GEOMETRY_LOADED_EVENT,试图触发设置该属性的正确时刻,但当事件被触发时,模型仍然没有完成,再次导致太多的等待时间。

我想知道是否有办法保持ProgressiveDisplay到True,直到模型/几何体完全加载并在查看器中呈现,然后将其设置为False以便在模型周围停留。是否有活动可以帮助我更好地管理查看器中的大型模型?

我对Forge还很陌生,我还在学习,所以我正在寻求您的建议。 谢谢!


解决方案

有三种方法可以减少您看到的‘网格闪烁’问题...

  1. 更改devicePixelRatio(填充像素界限)
  2. 更改FPS计数器(顶点界限)
  3. 打开试验性‘可见性缓存’选项(渲染绑定)

1.使用DevicePixelRatio

要更改devicePixelRatio,请尝试使用这些值...1.5、1.0、0.75...

window.devicePixelRatio = 0.75

2.使用setFPSTarget

  1. 将FPS启发式降低到较低的16fps、平均值24fps和最大30fps,使用...

viewer.impl.setFPSTargets(16,24,30);

3.启动可见性剔除

viewer.impl.toggleVizBuffer(true)

这将激活一个实验功能,该功能使用之前的帧来确定哪些是可见的,哪些是不可见的。然后,它会根据像素贡献将最大的东西渲染到最小的东西。它对某些事情很有效,但对另一些事情就不太好了。

这是一个GIF动画,显示了vizBuffer与一座大型建筑的"前后"...

相关文章