[vtkusers] How to visualize thousands of actors with good performance
Sean McBride
sean at rogue-research.com
Tue Sep 28 13:02:42 EDT 2010
On Tue, 28 Sep 2010 15:04:54 +0200, Affolter Martin said:
>Thanks for your suggestion. I had tried static mappers before,
>unfortunately without the Update()-call. Now I understand why the faces
>didn't show the first time (only edges and vertices). Anyway I tried it
>again just now. There is a slight performance increase noticable, but
>still no match to the performance in VTK 4.4., where the scene (8000
>actors) can be rotated smoothly.
Have you tried profiling your app? Where are the bottlenecks?
(What OS are you on? If Mac OS X, you can use Instruments.app to
measure where your bottlenecks are. I'm sure other OSes have similar tools.)
In our case, when we have about 10000 actors, and rotate the scene, the
heaviest stack trace is:
main
...
-[vtkCocoaGLView drawRect:]
vtkRenderWindow::Render()
vtkRenderWindow::DoAARender()
vtkRenderWindow::DoFDRender()
vtkRenderWindow::DoStereoRender()
vtkRendererCollection::Render()
vtkRenderer::Render()
vtkOpenGLRenderer::DeviceRender()
vtkRenderer::UpdateGeometry()
vtkActor::RenderOpaqueGeometry(vtkViewport*)
vtkOpenGLActor::Render(vtkRenderer*, vtkMapper*)
vtkPolyDataMapper::Render(vtkRenderer*, vtkActor*)
vtkPainterPolyDataMapper::RenderPiece(vtkRenderer*, vtkActor*)
vtkDefaultPainter::Render(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkPainter::Render(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkPainter::RenderInternal(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkPainter::Render(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkOpenGLScalarsToColorsPainter::RenderInternal(vtkRenderer*, vtkActor*,
unsigned long, bool)
vtkPainter::RenderInternal(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkPainter::Render(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkOpenGLClipPlanesPainter::RenderInternal(vtkRenderer*, vtkActor*,
unsigned long, bool)
vtkPainter::RenderInternal(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkPainter::Render(vtkRenderer*, vtkActor*, unsigned long, bool)
vtkOpenGLDisplayListPainter::RenderInternal(vtkRenderer*, vtkActor*,
unsigned long, bool)
gleCallList
--
____________________________________________________________
Sean McBride, B. Eng sean at rogue-research.com
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada
More information about the vtkusers
mailing list