[vtkusers] Isosurface Extraction

Marcel Weiss mweiss at cbs.mpg.de
Mon Apr 14 11:56:51 EDT 2008


Dear Bill,

you are right. "errors" was not the adequate word or description. I appologize for that. 

what I ment was, that it might happen (especially when there are thin structures), that using one of the isocontour extractors (e.g. vtkContourFilter, vtkMarchingContourFilter, vtkImageMarchingCubes, tkMarchingCubes) creates surfaces (poly meshes), that do not descibe the same volume as in my case the original zero level set. (this might be caused by different assumptions on the fore- and background neighborhoods - I have to check this).

Any additional hints?

Greetings
M.Weiss


----- Original Message -----
From: "Bill Lorensen" <bill.lorensen at gmail.com>
To: "Marcel Weiss" <mweiss at cbs.mpg.de>
Cc: "Amy Squillacote" <ahs at cfdrc.com>, vtkusers at vtk.org
Sent: Monday, April 14, 2008 4:56:04 PM (GMT+0100) Europe/Berlin
Subject: Re: [vtkusers] Isosurface Extraction

There are no topological "errors" in the vtk implementation of Marching Cubes.

Bill

On Mon, Apr 14, 2008 at 10:46 AM, Marcel Weiss <mweiss at cbs.mpg.de> wrote:
> there is only one scalar array (created from a level set result with spherical topology of the zero level set)
>
> the problem is the used algorithm. standard MC (as it is implemented in the used countour filter) is known to created topology "errors" in some regions.
>
> I am looking for on of the existing alternatives/extensions already implemented in VTK/ITK.
>
> m.weiss
>
>
> ----- Original Message -----
> From: "Amy Squillacote" <ahs at cfdrc.com>
> To: "r jamieson" <r.jamieson at reading.ac.uk>
> Cc: "vtkMailingList" <vtkusers at vtk.org>
> Sent: Monday, April 14, 2008 3:24:06 PM (GMT+0100) Europe/Berlin
> Subject: Re: [vtkusers] Isosurface Extraction
>
> Does your data set have more than one point scalar array? Is it possible
> that the contour filter is actually operating on an array with a
> different scalar range?
>
> - Amy
>
> r.jamieson at reading.ac.uk wrote:
> > HI Bill,
> >
> > My values range from 1 to 562043.31.
> >
> > Ronan
> >
> >
> > On Apr 13 2008, Bill Lorensen wrote:
> >
> >> What is the scalar range of your input?
> >>
> >> Bill
> >>
> >> On Sun, Apr 13, 2008 at 9:34 AM, ronan <r.jamieson at reading.ac.uk> wrote:
> >>> Hi,
> >>>
> >>> I am trying to get my head around isosurfaces extraction and i have
> >>> tried to write a c++ program to do a simple extraction, but i cannot
> >>> see any isosurfaces, i have got a wireframe box around the
> >>> space...but no isosurface, i have attached my code
> >>>
> >>> I would be greatful if some one could point out where i have gone
> >>> wrong.
> >>>
> >>> Thanks in advance
> >>>
> >>> Ronan
> >>>
> >>> int main()
> >>> {
> >>>
> >>> char *c1;
> >>> // Setup standard rendering
> >>>
> >>> vtkRenderer *ren1 = vtkRenderer::New();
> >>>   ren1->SetBackground(0.8,0.8,0.8);
> >>>
> >>> vtkRenderWindow *renWin = vtkRenderWindow::New();
> >>>   renWin->AddRenderer(ren1);
> >>>   renWin->SetSize(400,300);
> >>>
> >>> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
> >>> iren->SetRenderWindow(renWin);
> >>>
> >>> //Read data from office simulation data file
> >>>
> >>> vtkDataSetReader *dataSource = vtkDataSetReader::New();
> >>>   dataSource->SetFileName("/home/ronan/Develop/Data/office.vtk");
> >>>   dataSource->DebugOn();
> >>>   dataSource->SetScalarsName(c1);
> >>>   dataSource->Update();
> >>>
> >>> // Create and initialize a dataset outline
> >>> // The outline of the data puts the data in context.
> >>>
> >>> vtkOutlineFilter *outline = vtkOutlineFilter::New();
> >>>   outline->SetInputConnection(dataSource->GetOutputPort());
> >>>
> >>> vtkPolyDataMapper *outlineMapper = vtkPolyDataMapper::New();
> >>>   outlineMapper->SetInputConnection(outline->GetOutputPort());
> >>>
> >>> vtkActor *outlineActor = vtkActor::New();
> >>>   outlineActor->SetMapper(outlineMapper);
> >>>   outlineActor->GetProperty()->SetColor(0, 0, 0);
> >>>
> >>> ren1->AddActor(outlineActor);
> >>>
> >>> //Create an iso-surface using Marching Cubes
> >>> vtkContourFilter *iso = vtkContourFilter::New();
> >>>   iso->SetInputConnection(dataSource->GetOutputPort());
> >>>   iso->ComputeScalarsOn();
> >>>   iso->SetValue(0, 14);
> >>>   iso->Update();
> >>>
> >>> //vtkDataSetMapper *isoMapper = vtkDataSetMapper::New();
> >>> vtkPolyDataMapper *isoMapper = vtkPolyDataMapper::New();
> >>>   isoMapper->SetInputConnection(iso->GetOutputPort());
> >>>   isoMapper->ScalarVisibilityOn();
> >>>   isoMapper->SetScalarModeToUsePointFieldData();
> >>>   isoMapper->SetScalarRange(0, 1200);
> >>>
> >>> vtkActor *isoActor = vtkActor::New();
> >>>   isoActor->SetMapper(isoMapper);
> >>>   isoActor->GetProperty()->SetColor(0.9804, 0.9216, 0.8431);
> >>>
> >>> ren1->AddActor(isoActor);
> >>>
> >>> renWin->Render();
> >>>  iren->Start();
> >>> _______________________________________________
> >>> This is the private VTK discussion list.
> >>> Please keep messages on-topic. Check the FAQ at:
> >>> http://www.vtk.org/Wiki/VTK_FAQ
> >>> Follow this link to subscribe/unsubscribe:
> >>> http://www.vtk.org/mailman/listinfo/vtkusers
> >>>
> >>
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> > http://www.vtk.org/Wiki/VTK_FAQ
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> >
>
> --
> Amy Squillacote                    Phone: (256) 726-4839
> Computer Scientist                 Fax: (256) 726-4806
> CFD Research Corporation           Web: http://www.cfdrc.com
> 215 Wynn Drive, Suite 501
> Huntsville, AL  35805
>
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>




More information about the vtkusers mailing list