[vtk-developers] Change to Widgets

David Gobbi david.gobbi at gmail.com
Mon Sep 24 13:37:12 EDT 2007


On 9/24/07, Sebastien BARRE <sebastien.barre at kitware.com> wrote:

> At 9/24/2007 11:53 AM, Utkarsh Ayachit wrote:
> >The reason for this change is Paraview. In ParaView when interacting
> >the client switches into a low-detail rendering mode and switched
> >out of it when EndInteractionEvent is fired by the interactor style
> >or the widget. If the widget fires the event before render than
> >paraview switches out of the interactive mode (to full res mode) and
> >renders in full res.
>
> I'm with Tim on this one, the event probably should be fired before
> Render() (the way it is now).
> What is not clear is how the situation you describe in PV is a
> problem: in most case you *want* to get out of low-detail at
> EndInteraction, so that the scene is re-rendered correctly by the
> Render() call after it, wouldn't you? Actually if I recall that's how
> it's done in VolView... The situation you describe seems to be a side
> effect of you explicitly calling Render() when intercepting
> EndInteractionEvent (i.e. you switch to full res, then re-Render()
> manually?). But in most case, I would say that VTK users would
> probably just use the StartInteraction and EndInteraction to set an
> "I'm interacting" flag or setup the LOD's correctly, and expect the
> Render() to be called for them in a reasonable way (the way it is now I'd say).

Personnally, I've had trouble with high-quality renders that occur
immediately after the interaction ends.  Often I do several interactions
in a row (pan, rotate, zoom) and if the HQ render is too slow or not
interruptible then I get myself into trouble.  My solution was to render
at low-quality when interaction had ended, and set a timer to do a
HQ render half a second later.   If a new interaction occured within
this half second, the timer would abort.  Overall this made multiple
interactions go a lot smoother.

Forcing an HQ render on EndInteraction makes this sort of thing
impossible.  And I know that it should be possible to abort renders,
but sometimes the Render call causes pipeline updates to occur
that aren't easy to abort.  Stopping a timer is easier than aborting
a render-in-progress.

  David



More information about the vtk-developers mailing list