[Paraview] using paraview with CAVElib

Robert Belleman robbel@science.uva.nl
Mon, 27 Jan 2003 17:34:53 +0100


Hi Steven, Charles,

Unfortunately, there's a little bit more you need to be able to use
Vtk/ParaView with CAVElib, especially in multi-piped/walled
configurations.

The problem is that display processes in CAVElib versions prior to 3.x
need shared memory to access the geometry that is to be rendered by
the different pipes. This would either require that vtkMapper and
Actor are changed so they allocate from shared mem (instead of heap),
or copying geometry into shared mem. The latter is what
vtkActorToPerformer does (and vtk2CAVE as well, by Matthew Hall).

You can probably imagine that the overhead in copying can kill
performance, especially if visualization pipelines re-execute
frequently. Also; on some systems shared memory is a limited resource;
on Linux systems for example, this is 32MB by default (cat
/proc/sys/kernel/shmmax), which isn't a lot if you're rendering
complex scenes...

Version 3.x of CAVElib gives you the option of using display *threads*
instead of (forked) processes. This allows display processes to access
memory from heap, thereby solving (most) of these problems.

We have implemented CAVElib 3.x versions of vtkActor, vtkRenderer,
RenderWindow, RenderWindowInteractor, and more, but haven't really had
a time to fully test this on systems other than our single-walled
Linux-based VR system.

If there is a need, we would be willing to share our code. But again;
note that this software requires CAVElib version 3.x.

Best,
-- Rob

-- 
[] Robert Belleman         X  Section Computational Science            []
[] robbel@science.uva.nl  |X| University of Amsterdam, the Netherlands []
[] tel: (+31) 20 525 7510  X  http://www.science.uva.nl/~robbel/       []

On Tue, Jan 07, 2003 at 11:22:04AM -0500, Charles Law wrote:
> Hello Steven,
> 
> I do not have much experience using VTK and CAVELib, but I assume that 
> there are special vtkMapper, vtkActor or vtkRenderers which do this.  You 
> should be able to add these special subclasses in ParaView and make it 
> work.  All of these objects are created through Tcl calls, so It should be 
> easy to make the substitution.  If you are not using MPI, then ParaView 
> skips creating the composite manager, so you do not need to worry about that.
> 
> The renderer/render window is created in vtkPVRenderView in the 
> "CreateRenderObjects" method.
> 
> The actor and mapper are created in vtkPVData in release 0.6, but are 
> created in vtkPVPart in the nightly CVS repository.
> 
> There is an environment variable (PV_SEPARATE_RENDER_WINDOW) that when set 
> causes the render window and the UI  to be in separate windows.  You may 
> need this option.
> 
> Charles.
> 
> 
> 
> 
> At 04:53 PM 1/3/2003 -0600, Coorpender, Steven wrote:
> 
> >Does anyone have any experience modifying the Paraview source to use the 
> >CAVElib for rendering? Theoretically, it should be possible with the 
> >vtkActorToPerformer class. What I need to do is find out where in the 
> >Paraview source code the rendering or mapping calls to VTK are made and 
> >make appropriate calls to the vtkActorToPerformer object instead. A 
> >separate loop will handle the rendering using OpenGL Performer and the 
> >CAVElib. Any help and/or ideas would be greatly appreciated.
> >
> >Steven Coorpender
> >Systems Analyst
> >LSUHSC-Ophthalmology
> >504-412-1200x1446
> >scoorp@lsuhsc.edu
> 
> 
> _______________________________________________
> ParaView mailing list
> ParaView@public.kitware.com
> http://public.kitware.com/mailman/listinfo/paraview