我正在开发一个使用VTK可视化对象的QT C ++应用程序。我已经意识到,当对象非常复杂(涉及大量节点)时,当用户通过鼠标指针与窗口进行交互时(例如,为了旋转对象),应用程序响应速度很慢,而对象不会移动,将其渲染到最终位置需要一些时间。
当然,可以使用更好的硬件(确实是更体面的GPU)来改进它,但是,如果我在Paraview中加载相同的对象,则与它的交互更流畅。我意识到在转换过程中(例如,当我将鼠标指针放在Roder中以旋转对象时),该对象使用较少的节点进行渲染,换句话说,它在交互过程中显示了该对象的简化表示。最后,释放指针后,对象将完全呈现。
我想知道VTK提供了哪些方法来实现这种行为,并最终使我的应用程序更加流畅。
答案 0 :(得分:3)
流数据(如注释中所建议)通常用于数据集太大而无法加载到内存中的情况。
对于交互作用(这是您的问题似乎要关注的问题),请看一下vtkLODActor
(细节层次参与者)https://vtk.org/doc/nightly/html/classvtkLODActor.html#details,这是用来改善交互作用的工具。
其他与性能相关的注意事项:
尽管默认情况下这些功能处于关闭状态。不确定确切使用的数据是什么,但是根据我对多边形几何(vtkPolyData)的经验,将模型抽取到合理数量的多边形(对于许多应用程序来说,<3万个单元就足够了)是通常的后处理步骤。参见例如vtkDecimatePro
过滤器。
还要确保您已安装了用于硬件的最新图形驱动程序。