Parallelism

One of the limitations of VTK is that it runs in a single process. Execution of the VTK pipeline becomes the bottleneck in an interactive application. In VR, interactivity is even more important then on the desktop. This problem can be solved using vtkActorToPF:
  1. With vtkActorToPF, the VTK pipeline execution can be put into a separate process from the Performer rendering process(es). This allows the user to examine the current geometry while the pipeline executes. When the new geometry is available, it can be plugged into the scenegraph, replacing the old geometry. For example, the scene will not "freeze" while a new isosurface is being generated even though the isosurface computation may take some time.

  2. vtkActorToPF can also be used to "parallelize" VTK. The idea is that you have multiple vtk pipelines feeding a shared Performer scenegraph. Each pipeline may work on a seperate piece of the dataset (data decomposition) or on a different visualization algorithm.

It works! The parallel example I wrote computes isosurfaces for a volume dataset (vtkStructuredPoints). Each bounding box below is from a vtk pipeline running in its own process.

4 pipelines:
8 pipelines: