Adaptive render facets in VTK?

Is there any functionality in VTK for adaptive render facets (of nonlinear curves and surfaces) based on the current view? I know there’s the LOD functionality in ParaView, but that reduces the fidelity during view transformation. What I’m interested in understanding is whether something similar to Fusion360’s behavior exists - see this example I recorded.

Essentially, when zoomed out, everything uses a coarser tessellation. After zooming in on a region, it updates only the surfaces in view with a finer tessellation. As soon as we move/zoom to a different location, the previous location goes back to a coarse tessellation and the new location draws with an appropriately fine tessellation.

We had a project several years ago that did something along the lines of what you describe. If you check out Filters/Generic/vtkGenericDataSetTessellator (and the other classes in that directory) you can see some of the work. It is not heavily used and I suspect it needs some love to bring it up to speed / get it working properly.

There were also a couple of technical papers written about this.

William J. Schroeder. François Bertel. Mathieu Malaterre. David Thompson. Methods and framework for visualizing higher-order finite elements. July 2006. IEEE Transactions on Visualization and Computer Graphics 12(4):446-60.

1 Like