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

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Thu Mar 15 12:24:14 EDT 2012


Paul,

SetTile() sounds like a good place for your initialization,
remembering that it will be called on every render, in general.

Utkarsh

On Thu, Mar 15, 2012 at 12:04 PM, Paul Melis <paul.melis at sara.nl> wrote:
> 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