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:
-
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.
-
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:
|
|
|