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
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!
On Tue, 10 Jan 2006, David Marshburn wrote:
> 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
> - verification that others have seen this happen
> - suggestions for what may be unique to nvidia geforce hardware or drivers
> that causes this behavior