[vtkusers] Marching Cubes speedup ?

Nils H. Busch nilsb at cns.mpg.de
Mon Sep 24 08:46:22 EDT 2001


I have recently returned to using vtk for isosurface extraction, but
found it quite slow and using lots of memory. I compared it to two other
isosurface extraction algorithms (one that is provided with Matlab and
another supplied with OpenGL Optimizer). With my largest datasets, I was
only able to extract an isosurface with the OpenGL Optimizer algorithm.
The other two ran out of memory. Both the Matlab and Optimizer algorihms
ran significantly faster and produced significantly less triangles ( up
to 30 % ). The output also looked much smoother than the mesh produced
by vtk.

I have heard that the vtkPointLocator class is responsible for this
runtime overhead. Is its use mandatory? How does it work?

I am looking for ways to fine tune and improve the vtk marching cube
implementation in terms of memory consumption and run time. One simple
way for my use would be to reduce the visited cells to those where I
know that they contain the iso-value. Each cell that passes a mask test
would then qualify for contour extraction. Is there a way to do this at
the "vtk class level" or do I need to change the actual vtkMarchingCube
class code?

Any other suggestions as to reducing memory usage and runtime or
smoother isosurfaces ?


 Best regards,
                                         Nils H. Busch

    Max-Planck-Institute of Cognitive Neuroscience
    Phone:                     ++49 (341) 9940-234
    Fax:                       ++49 (341) 9940-204
    E-Mail:                       nilsb at cns.mpg.de

More information about the vtkusers mailing list