[vtkusers] How to visualize thousands of actors with good performance

Affolter Martin martin.affolter at ntb.ch
Mon Sep 27 09:28:58 EDT 2010


Jim,

thanks for your reply. You're right, we're using one pipeline for each element, which obviously results in a large number of pipelines. With this approach we are able to select and highlight every actor (mesh, vertex, edge, ...) individually. With VTK 4.4 we never really had any performance issues so it was not necessary to change the way we visualize things.

Used actor-interaction:
- Selection requests, that for each shown graphic-element the corresponding geometry-element can be identified.
- Highlighting requests, that for each geometry-element the corresponding graphic-element can be identified and altered (color, transparency, etc).
- Identification must be fast

And here is some additional information:
- The initial polydata is never manipulated. If the geometry-data changes, the old polydata is erased and new pipelines are created.
- If the geometry-data is being transformed (identity-transformation only), the corresponding actors are also transformed (usermatrix)

We could consider combining polydata to use fewer actors as you suggested. However, this change would generate a lot of work in our system. I was hoping that we could restrict the pipeline execution (according to our needs) and thus make it run faster. Do you know how to do that? What classes do you use for the combination of polydata?

Thanks

Martin Affolter 


-----Ursprüngliche Nachricht-----
Von: Jim Peterson [mailto:jimcp at cox.net] 
Gesendet: Montag, 27. September 2010 12:51
An: Affolter Martin
Cc: vtkusers at vtk.org
Betreff: Re: [vtkusers] How to visualize thousands of actors with good performance

Affolter Martin wrote:
> The scenes are quite simple. We visualize CAD-Models (Tools) showing faces, edges and vertices. All data is vtkPolyData, the pipeline looks like this:
>
> vtkPolyData -> vtkPolyDataMapper -> vtkActor
>
> We've already tried the FAQ hints for increasing performance with little success. If you have experienced the same or have a solution, maybe just a guess, please contact me. Thanks.
>
>   

Martin,
So you have a pipeline that has one polyData, one mapper and one actor 
per element in the display? can you describe what unique vtkActor 
function you need to be able to apply to the individual elements? I am 
assuming there is some interaction with the vtkActors that is the goal, 
vtk also has objects for combining polydatas, and point, and cell 
pickers to allow interaction at that level with the polydata from a 
single actor. 

thanks,
Jim



More information about the vtkusers mailing list