[vtkusers] streaming vtkMarchingCubes?

Dominik Szczerba dominik at itis.ethz.ch
Wed Jul 29 03:27:44 EDT 2009


I am doing nothing particular, just a structured points dataset with a 
smooth scalar field (float) that I am running vtkMarchingCubes on. I get 
my polydata as cubes->GetOutput(). As mentioned, I dont know if that 
matters but the problem appears on a low mem PC and not on a bigger one 
(same code but different systems). If you strongly believe there is 
something special in my image data I can put it online for a test.

I can not follow the vtkMarchingCubes code well enough to clearly tell 
if there is some streaming being done - looks to me like not, but where 
do the degenerate points come from?

An interesting observation though, if I save the resulting polydata 
using vtkPolyDataWriter I get the file you saw. If I save it with the 
vtkSTL writer I get a clean dataset, so the latter must merge coincident 
points internally (why? - this removes the chance of finding errors)

best regards,
Dominik

Bill Lorensen wrote:
> I looked at the vtk file and indeed it has multiple surfaces. How did
> you generate this polydata? Can you tell me the pipeline you used?
> 
> On Sun, Jul 26, 2009 at 1:29 PM, Dominik Szczerba<dominik at itis.ethz.ch> wrote:
>> On Sun, 2009-07-26 at 12:35 -0400, Bill Lorensen wrote:
>>> I am surprised at this. vtkMarchingCubes should produce manifold and
>>> oriented surfaces. There should be no duplicate points.
>>> vtkMarchingCubes can produce multiple, topologically disconnected
>>> surfaces. vtkDiscreteMarchingCubes can (and should) produce
>>> geometrically continuous but topologically disconnected surafces.
>>>
>>> Can you provide a test dataset that reproduces the problem?
>>>
>> I hanged a small sample on:
>>
>> http://otoro.itis.ethz.ch/~dominik/tmp/test.vtk
>>
>> I got this while segmenting a smooth scalar field on a (Windows virtual)
>> machine with very little memory. I do not get this on a (linux real)
>> machine with lots of memory.
>>
>> Running connectivity filter you will notice a few disconnected regions.
>> It goes away after merging coincident points (and the number of points
>> is reduced indicating degenerate original points).
>>
>> I just need to get a warning when the output is in such condition to not
>> have to merge points by default, which degrades performance.
>>
>> -- Dominik
>>
>>> Bill
>>>
>>> On Sun, Jul 26, 2009 at 8:27 AM, Dominik Szczerba<dominik at itis.ethz.ch> wrote:
>>>> I have experimentally found out that vtkMarchingCubes can generate
>>>> geometrically continuous but topologically disconnected isosurfaces,
>>>> i.e. the isosurface is cut into stripes along one axis with duplicate
>>>> points on the edges. How do I get a control of this behavior,
>>>> especially, to know if there will be disconnected stripes so I should
>>>> merge the points (I need topological consistency)?
>>>>
>>>> -- Dominik
>>>>
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>
>>
> 


-- 
d o m i n i k   s z c z e r b a ,   p h d . . . . . . . . . . .
c o m p u t a t i o n a l   l i f e   s c i e n c e   g r o u p
. . . . . . . i t ' i s   r e s e a r c h   f o u n d a t i o n
. . . . . . . . . . . . . . . . . . . . http://www.itis.ethz.ch




More information about the vtkusers mailing list