Re: the disappearing isosurface

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: the disappearing isosurface

David Marshburn

Hi VTKers,

I heard from two people who had seen a problem similar to the one I
describe below.  I wanted to ask again to see if anyone has any similar
experience or thoughts on a solution.

some more details:  I traced the failure (when it fails) to the call to
glEndList in vtkOpenGLPolyDataMapper::RenderPiece; it generates an
out-of-memory error.  In the dataset I'm using to test, the isosurface has
about 1.9 million polys in it (as reported by
vtkImageMarchingCubes::getOutput()->GetNumberOfCells() ).

What I don't understand is how this isosurface could generate an
out-of-memory error on a GeForce 6800 w/ 256 MB on card but not on a
Quadro2 w/ 64 MB on card.

Thanks for any advice or reports of similar behavior!

-David

On Tue, 10 Jan 2006, David Marshburn wrote:

>
> VTKers,
>
> We have an application built around vtk which extracts isosurfaces from
> volume image data.  Sometimes, we lose isosurfaces.  That is, at some
> isovalues, there is no isosurface rendered, while other Actors in the
> scene are still visible (come cube axes and other icons).  Changing the
> isovalue so that more surface is generated causes the isosurface to not
> appear; the isosurface will appear for an isovalue for which less surface
> is generated, and we can go back and forth between isovalues for which a
> surface does and does not appear.  Given the values in the
> several test datasets, there should be an isosurface rendered;
> furthermore, the isosurface does appear on some platforms (but read on).
>
> This behavior seems to coincide with our change from vtk 4.2 to 4.4.  
> Also, it seems limited to nvidia GeForce hardware.  I've tested our
> application with a couple of data sets on 6 different geforce cards (from
> a GeForce4Go up to a GeForce 6800 GS), 3 Quadro cards (Quadro2 and 4
> models) and 2 ATI cards (Mobility 9700 and 9800).  The isosurfaces
> disappear only on the GeForce cards, and consistently on all the GeForce
> cards.  I did check for recent driver versions; however, something as
> basic as "render a lot of polygons" seems to be one of the first things
> I'd expect nvidia to get right.  That is, a bug in something as basic as
> polygon rendering seems unlikely and not the first place to look.  
> Alternatively, before going to nvidia, I'd like to ascertain that the
> problem cannot be in the way we use the nvidia hardware and drivers.
>
> Finally, if I force immediate-mode rendering to be ON, the problem goes
> away (although things run more slowly, overall).  This would seem to
> indicate that the problem is related to display lists.  
>
> Our pipeline goes as so:
>   vtkImageData -> vtkExtractVOI -> vtkImageExtractComponents
> -> vtkImageMarchingCubes -> vtkTriangleFilter -> vtkStripper
> -> vtkPolyDataNormals -> vtkPolyDataMapper -> vtkActor
>
> I would appreciate any of the following:
> - suggestions for more tests to perform to further characterize this
>    problem...
> - verification that others have seen this happen
> - suggestions for what may be unique to nvidia geforce hardware or drivers
>    that causes this behavior
>
> thanks!
> -david
>
_______________________________________________
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