[vtkusers] Large number of actors

Clinton Stimpson clinton at elemtech.com
Wed Jun 8 15:11:04 EDT 2011


On Wednesday, June 08, 2011 01:00:48 pm Nicolas Rannou wrote:
> Hi all,
> 
> Our application requires to render up to 5000x1000 PolyDatas.
> Each polydata is made of 500 triangles.
> 
> It looks like it is impossible to store all the related actors in memory
> (on a machine with 48Gb RAM).
> 
> We have been playing around with things such as "vtkStripper",
> "ImmediateRendering", "ReleaseDataFlag", "BackFaceCulling", etc.
> 
> For 1000 PolyDatas:
> 
> The best option in term of memory looks like turning "ImmediateRendering"
> ON. -> 1000 actors
> 	-> 60 Mb of memory usage
> 	-> slow interaction
> 
> The best option in term of interaction seems to be using the following
> pipeline: vtkPolyData->vtkStripper->vtkAppend->vtkMapper->vtkActor
> 	->1 actor
> 	-> 90mo in memory
> 	-> good interaction
> 
> Using only one actor is not an option for us since we want to be able to
> pick and change properties of each object (individually).
> 
> Would somebody have any advise?

In this situation, I think you can get both interaction speed and memory 
savings by putting your many vtkPolyData objects into a vtkMultiBlockDataSet 
and rendering that with an actor or a few actors.

You could put some properties, such as colors, in the vtkPolyData instead of 
the vtkActor.  And for other properties, you could use the same actor/mapper 
for those objects that share the properties.  Or perhaps use vtkPainter to 
customize rendering of these objects.

-- 
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com



More information about the vtkusers mailing list