Hi Gianluca,

If you new exactly what objects needed updating then you could compute
combined bounding volume of the modified objects in the current and
the previous frame and then project these combined bounding volume
into screen space to find out the region of the screen that will need
to be redrawn.

Once you know the region of the screen that needs redraw then you
could adjust the viewer's Camera so that it has a smaller viewport and
adjust projection matrix to just render the area of interest.  This
approach would also have to render to the front buffer rather than the
back buffer, and with it would have a small flicker when the region is
redrawn.

To get around the flicker you could draw the full screen twice and
then draw the updated region on each new frame.  You'll need to update
the region between the objects position two frames ago and the current
position rather than the just the region covered by the two adjacent
frames.

As you'll gather all this is doable, but rather convoluted, just
rendering the whole frame when needed will certainly lead to an easier
life and lower application complexity.

Robert.

On Tue, Feb 22, 2011 at 1:47 PM, Gianluca Natale
<[email protected]> wrote:
> Hi there,
> I hope someone of you can help me on this issue.
> I have a very complicated scene graph, that takes a very long time to be
> completely redrawn (>200 ms).
>
> But the most frequent use case I have is to redraw only a very small part of
> the model at a time
> (suppose for example that I would need to redraw only the object under the
> mouse).
>
> So, I could increase performances a lot by simply redrawing that object in
> the front buffer without clearing the depth buffer,
> in order to keep it in the right position WRT the other object of the model.
> And without swapping front and
> back buffers at the end of drawing.
>
> Is this possible?
>
>
>
> If I’m not wrong, sometimes ago I received an email from you saying that the
> drawing traversal of OSG
>
> always clean the depth and back buffers, redraws the complete scene graph
> and then swap the buffers.
> This works pretty well when the scene changes dynamically, but in my case
> where there is a static drawing for
>
> a long time, I would need a way to tell the drawing traversal to draw in the
> front buffer, and not to perform the swapping
> of buffers at the end.
>
> Is there a way to do that?
>
>
>
> Thanks in advance
>
> Gianluca Natale
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to