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

Paul Melis paul.melis at sara.nl
Fri Mar 16 08:31:42 EDT 2012


Okay, great!

Would it be hard to explicitly set the render resolution (per tile) in
the code? Currently, the screen res is used it seems, but I would really
like to control the resolution used.

Thanks again,
Paul

On 03/15/2012 05:24 PM, Utkarsh Ayachit wrote:
> 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