[vtkusers] efficient way to render 3D binary data

Benjamin Sobotta mayday at gmx.net
Wed Jul 11 03:15:16 EDT 2007


I'm writing because I was wondering what would be the most efficient solution for my problem:

I basically have a CT dataset (like the ones in the Medical examples) and additional information about the organs. Analogous to the examples I made a viewer that extracts and displays skin and bone based on the CT information. My problem now is how to _efficiently_ include the organs in the visualization. The information at hand is a boolean array of CT resolution for each organ.

So far I have identified three methods to do this:


Transfer the boolean array into an array of short and use vtkImageImport -> vtkContourFilter(0,1) ....
That seems like a terrible waste of resources to me and I'm seeking a better solution.


Make an array of, say, int and use each bit the encode a VOI. Then use vtkProgrammableFilter to extract the VOI again based on AND operations with the appropriate mask. Naturally that would limit the amount of VOIs to 32, but that's no issue.


Extract the points that are part a certain VOI into vtkPoints and the use vtkUnstructuredGrid????, vtkPolyData???? and vtkDataSetSurfaceFilter???? to get it on screen.

As you can probably tell I'm a total newbie to vtk and I'm still lacking the necessary overview about the possiblities.

Personally I favor the third version, however, have no clue (fail) on how to do this in detail. :(

This whole thing basically comes down to the question on what's the best way the visualize a 3D binary dataset of adjacent points.

Any hints are appreciated!

Thanks for help!


More information about the vtkusers mailing list