[vtkusers] very slow rendering of stream geometry

Wylie, Brian bnwylie at sandia.gov
Sat Mar 17 18:47:45 EDT 2007


Hmmm...

Well I'm certainly not an expert in streamlines, but the pipeline looks
fine...

So another, perhaps not useful, suggestion.. :)

Do

tubes->Update()
int numCells = tubes->GetNumberOfCells();

1) if the number is large, then you know something funny is happening
with the streamlines, tube generation, etc...

2) if the number is small (< 50000), then you should....


2a) Make a plane source (vtkPlaneSource)
2b) set the X and Y resolution to 100 each (or whatever), 
2c) Replace the tube input with the plane...  
    sph_map->SetInput(myPlane->GetOutput());

2d) and run the app again, and see if you can spin the plane around
interactively...

If you take path 2, and the plane doesn't spin around interactively,
then you probably have something wrong with your video driver, video
setup, visual request from VTK, etc...

Good luck.. :)

  Brian Wylie - Org 1424
  Sandia National Laboratories
  MS 0822 - Building 880/A1-J
  (505)844-2238 FAX(505)845-0833    
       _______ __
      /_  __(_) /_____ _____
       / / / / __/ __ `/ __ \
      / / / / /_/ /_/ / / / /
     /_/ /_/\__/\__,_/_/ /_/
            VTK Informatics Toolkit
  

> -----Original Message-----
> From: Mykhaylo Kostandov [mailto:mk at cs.brown.edu] 
> Sent: Saturday, March 17, 2007 3:08 PM
> To: vtkusers at vtk.org; Wylie, Brian
> Subject: [vtkusers] very slow rendering of stream geometry
> 
> Thanks for your reply Brian.
> 
> Sorry for not providing all the details, it was my first post 
> to this list.
> 
> I did try to switch immediate mode rendering on before, and 
> while it allowed to add a bit more streamlines or to decrease 
> the step just a little, it was not a significant improvement 
> (besides, interactivity slowed down to a crawl).
> 
> I realize now I should have been more specific in describing 
> the problem. I am able to get *some* small-scale setups to 
> render (so it's likely not a problem with display lists), but 
> problems occur as I'm increasing the number of seeds, or 
> decrease the integration step, or adding more geometry 
> (whether with tubeFilter or glyphs).
> 
> I just wanted to verify that I'm using the right sequence of 
> filters, etc. So there's nothing wrong with the code itself, correct?
> 
> I'm running Debian (2.6.17.6cs.a64.nfsv4.smp.hm.1) on an 
> Athlon 64 X2 Dual Core 3800+ with 2GB physical memory. Video 
> card is GeForce 6150.
> 
> Thanks a lot!
> -Mike
> 
> 
> 
> Wylie, Brian wrote:
> > Mike,
> >
> > Try adding this option to you mapper...
> >
> > sph_map->ImmediateModeRenderingOn();
> >
> >
> > For some reason display lists may not be working on your hardware. 
> > Also anytime you have any issue with VTK you should always list out 
> > your hardware, OS, compiler... Some of these things can 
> have platform 
> > dependencies...
> >
> > Another thing is that updating your video drivers can be 
> helpful (if 
> > you haven't already done that.. )
> >
> >   Brian Wylie - Org 1424
> >   Sandia National Laboratories
> >   MS 0822 - Building 880/A1-J
> >   (505)844-2238 FAX(505)845-0833    
> >        _______ __
> >       /_  __(_) /_____ _____
> >        / / / / __/ __ `/ __ \
> >       / / / / /_/ /_/ / / / /
> >      /_/ /_/\__/\__,_/_/ /_/
> >             VTK Informatics Toolkit
> >   
> >
> >   
> >> -----Original Message-----
> >> From: vtkusers-bounces+bnwylie=sandia.gov at vtk.org
> >> [mailto:vtkusers-bounces+bnwylie=sandia.gov at vtk.org] On Behalf Of 
> >> Mykhaylo Kostandov
> >> Sent: Friday, March 16, 2007 9:50 PM
> >> To: vtkusers at vtk.org
> >> Subject: [vtkusers] very slow rendering of stream geometry
> >>
> >> Greetings all,
> >>
> >> I am experiencing some problems displaying flow fields with 
> >> streamlines filtered with tubes or glyphs or pretty much any other 
> >> filter. The dimensions of velocity field datasets I'm dealing with 
> >> are 40x40x40, and all I'm trying to do right now is to seed the 
> >> streamlines with a vtkPointSource and apply the 
> vtkTubeFilter. As for 
> >> streamlines, it seems that the only way to get them to 
> show up is to 
> >> drastically reduce the number of seeding points and increase the 
> >> integration step length; otherwise, the system just can't 
> handle it. 
> >> Once I apply the vtkTubeFilter, it's virtually impossible 
> to get it 
> >> to work unless there are only a few seeds left, and the 
> integration 
> >> step is very high (see below).
> >>
> >> The processing itself doesn't take too long, but entering 
> the render 
> >> takes literally forever (and either segfaults or hangs).
> >>
> >> In ParaView, however, everything works fine with much greater 
> >> propagation times and number of seeds, as well as with reasonable 
> >> integration step lengths.
> >>
> >> I tried reducing the poly complexity with vtkStripper, etc. 
> >> but it didn't help.
> >>
> >> Any help would be greatly appreciated. Thank you all very much!
> >>
> >> -Mike
> >>
> >> Here's a snippet:
> >>
> >>     vtkDataSetReader *dataset = vtkDataSetReader::New();
> >>
> >>     dataset->SetFileName("vortex5-0010.vtk");
> >>
> >>     vtkPointSource *seeds = vtkPointSource::New();
> >>     seeds->SetRadius(5);
> >>     seeds->SetCenter(19.5,19.5,19.5);
> >>     seeds->SetNumberOfPoints(10);
> >>
> >>     vtkRungeKutta4 *sph_rk4 = vtkRungeKutta4::New();
> >>     vtkStreamLine *sph_stream = vtkStreamLine::New();
> >>    
> >>     sph_stream->SetInput(dataset->GetOutput());
> >>     sph_stream->SetSource(seeds->GetOutput());
> >>     
> >>     sph_stream->SetMaximumPropagationTime(123000);
> >>     sph_stream->SetIntegrationStepLength(1); // .5
> >>     sph_stream->SetStepLength(2); // .1
> >>     
> >>     sph_stream->SetNumberOfThreads(1);
> >>     sph_stream->SetIntegrationDirectionToIntegrateBothDirections();
> >>     sph_stream->SetIntegrator(sph_rk4);
> >>     sph_stream->SpeedScalarsOn();
> >>     sph_stream->Update();
> >>   
> >>      vtkTubeFilter *tubes;
> >>     
> >>      tubes = vtkTubeFilter::New();
> >>      tubes->SetInput(sph_stream->GetOutput());
> >>      tubes->SetRadius(0.2);
> >>      tubes->SetNumberOfSides(6);
> >>
> >>      vtkPolyDataMapper *sph_map = vtkPolyDataMapper::New();
> >>  
> >>      sph_map->SetInput(tubes->GetOutput());
> >>
> >>     vtkActor *sph_actor = vtkActor::New();
> >>     sph_actor->SetMapper(sph_map);
> >>
> >>
> >>
> >> _______________________________________________
> >> 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