vtkDataSetSurfaceFilter and NonlinearSubdivisionLevel

Is anybody using vtkDataSetSurfaceFilter’s NonlinearSubdivisionLevel > 1?

I am asking because i am currently working on speeding up vtkDataSetSurfaceFilter/vtkGeometryFilter and in the case where NonlinearSubdivisionLevel > 1, additional datastructures are used which complicate things a lot, especially for multithreading computing.

Yes. We use that in ParaView for non-linear cells. e.g. here

Yes. Not only is it in use, we will likely be expanding its use in the future as higher-order cells are used more and more.

Thanks for letting me know!

This non-linear subdivision stuff is a real problem for vtkGeometryFilter / vtkDataSetSurfaceFilter - it throws a plateful of spaghetti into the mix (the design needs significant rework IMO). Spiros, if possible we should find a way to isolate this code into a helper method etc. We may have to give up some performance for these higher-order cells, or create a specialized filter for them, so that for the 99% of code that does not use them we get the performance we need out of these geometry filters.

@will.schroeder When you’re talking redesign, you’re talking about the higher order cell classes?

Take a quick look at vtkDataSetSurfaceFilter. If you follow it through, you can see the subdivision level really impacts the code, and attempts to optimize/speed it up. I just think we can do better :slight_smile: