[Paraview-developers] Grabbing tiled display output for network streaming

Paul Melis paul.melis at sara.nl
Thu Mar 15 12:04:37 EDT 2012


Hi Utkarsh,

Awesome! That's just the pointer I needed.

Getting the image is indeed real easy at that point. Is the image data
guaranteed to have 4 components (RGBA)? I can't access the Data array in
vtkSynchronizedRenderers::vtkRawImage to check (although that's easily
added of course).

A second question has to do with an initialization step of the streaming
framework that I need to do. I need the tile resolution and subregion of
the full image that each tile represents (in normalized coords). I get
these currently in vtkTileDisplayHelper::SetTile() by looking at the
vtkRenderer's resolution, while parameter viewport[4] gives the other
values. Getting those values is guarded by a static bool to make sure I
do this only once. Is SetTile() the best option for this kind of
initialization, or is there a more natural place?

Thanks a lot so far!

Regards,
Paul

On 03/15/2012 03:45 PM, Utkarsh Ayachit wrote:
> Paul,
> 
> I think the key place for you is vtkTileDisplayHelper::FlushTiles().
> That method is called on the server sides everytime a view renders and
> ParaView wants to update the rendered images on to the tile display
> screen. vtkTileDisplayHelper already caches all the rendered tile
> images that it then posts to the screen. You can intercept this and
> you'll be sending these over the network as well/instead.
> 
> with 3.14 this won't work well with 2D Charts/Plots, but I'm working
> on fixing that as we 'speak' so that will automatically work as well
> once those fixes are in.
> 
> Utkarsh
> 
> On Thu, Mar 15, 2012 at 6:47 AM, Paul Melis <paul.melis at sara.nl> wrote:
>> Hi,
>>
>> I'd like to grab the rendered output from ParaView, specifically when
>> running in tiled display mode. The use case here is to run PV in
>> parallel on a render cluster in our data center, which then streams the
>> output over an optical network to a high-resolution tiled display. This
>> tiled display is actually used to show several image sources
>> side-by-side and uses the SAGE tiled display rendering framework.
>>
>> We've been using some(body else's) code based on PV 3.8 that does the
>> above, by hacking into vtkIceTRenderManager to intercept the rendered
>> images and send them out over the network. I've been looking into
>> porting this to a more recent PV but I see the whole render
>> infrastructure has been overhauled to be based on VTK views and
>> representations.
>>
>> I've been looking into the PV 3.14 code to see what would be the most
>> logical place to add code to intercept rendered images and send them
>> out, but I'm getting a bit lost. Any hint where to start hacking would
>> be greatly appreciated.
>>
>> Best regards,
>> Paul
>> _______________________________________________
>> Paraview-developers mailing list
>> Paraview-developers at paraview.org
>> http://public.kitware.com/mailman/listinfo/paraview-developers



More information about the Paraview-developers mailing list