View manipulation in a native VTK window is slower than Paraview

Hello!!!

I’m using VTK 9.5 and Paraview on Windows 11

I have noticed that manipulating the view of an object (Zoom, Pan, Rotate) in a native VTKRenderWindow on Windows is considerably slower than doing the same operations on the same model in Paraview.

I don’t have objective numbers but it’s VERY visually obvious. Instantaneous and very smooth in Paraview, laggy and slow in VTK.

I’ve attached the sample file I’m using - it’s a sphere with a 5,000 by 5,000 resolution and edge diaply disabled. In Paraview, I create the same thing using a SphereSource and adjusting the resoution to match.

Can anyone suggest why I might be seeing this performance differential?

test_sphere.py (3.0 KB)

Hello @scotsman60

ParaView is smart to dynamically reduce the number of polygons of the mesh while interacting with the 3D view.

To do this in VTK, I suggest looking at VTK: vtkLODActor Class Reference and seeing how you might integrate it within your application. There are also some examples in the link I shared.

Thanks Jaswant - I just figured out that Paraview is using an LODActor and reducing the polygon count during view manip. I saw this after chaging the representation to Surface with Edges.

So I updated the example and switched the vtkActor for a vtkLODActor.

I also looked at the vtkLODActor example.

So now I do see the improved viw manip speed - BUT….. the LOD display is terrible - just a handful of points basically and nothing like the uniform poly reduction I see in Paraview. I’ve varied the DesiredUpdateRate on the interactor but that doesn’t get me any kind of intermediate coarsening. From vtkLODActor documentation, I undestrand that what I’m seeing is the expected behavior - full fidelity, subset of points, outline are the default detail levels.

So I’m guessing that if I want to replicate what Paraview has, I need to configure the LOD manually - generating an intermediate LOD using something vtkDecimatePro?

OK - I replaced vtkLODActor with vtkQuadricLODActor and now the LOD behavior (and performance) is much closer to what I see in Paraview. Paraview still seems to have a better quadric decmation, but I’m pretty sure this is just down to tuning of the LOD params