Hi Doug,

There are number of hoops one has to jump through to do safe
multi-threading with the OSG, osgViewer does these all for you, while
SceneView knows nothing of it and requires higher level classes to
handle it.  osgViewer itself does use SceneView so does illustrate
that it is possible using SceneView so you could possible use this as
guide.

Personally I'd recommend that VRJuggler just use osgViewer for
creating the windows and cameras as per the configuration required by
VRJuggler, this way you can take advantage of all the threading models
that osgViewer provides in a way that is known to be thread safe.

Another key advantage of adopting osgViewer is that problems you see
will be much more  reproducible by others who don't use VRJuggler.
For instance you could create a scene that uses a ClearNode and run in
standard OSG examples, and if the problems exists then I and others
can look into it.

With the current state of play, trying to help diagnose what might be
up would require a massive time investment in getting VR Juggler
installed, learning about it, setting up the case that reproduces the
problem, then stepping through to see where the problem lies.

The alterntaive of trying to debug this stuff remotely with even
knowing all the VRJuggler code is no mean feat either - there are many
things that VR Juggler could be doing wrong w.r.t multi-threaded set
up of the OSG, or it could a problem on the OSG side.  Trying to sort
it out this way would again require a huge investment of time all
round.

I'm afraid I'm certainly too over stretched to undertake such a
process.  One of osgViewer core goals is making multi-thread,
multi-channel usage of the OSG straight forward, hiding all the subtle
details and thread synchronization that is required.  I'm not familiar
with VR Juggler, but I would have though it should possible to replace
the existing SceneView framework with a osgViewer::Viewer object and
have the Viewer's windows and cameras all set up according to VR
Juggler configuration.

Robert.

On 8/2/07, Doug McCorkle <[EMAIL PROTECTED]> wrote:
> Hello,
>       We are using SceneView from OSG 1.2 and VR Juggler in a
> multiple render thread environment. We are using the
> osgUtil::UpdateVisitor to update the graph in a serial portion of our
> code. SceneView::cull and SceneView::draw are called from each
> rendering thread. In this configuration we often see the displays
> flash the clear color on a random basis. We are setting the clear
> color through the use of a ClearNode and we clear the depth buffer at
> the beginning of the draw function. The "flashing" of the clear color
> is not seen when only one render thread is utilized. Is there a
> reason we are be seeing this behavior? Are we mismanaging something
> in our draw loop? Thanks for the help.
>
> Doug
>
> PS. Initial testing has shown this to occur under the OSG 1.9.x
> series as well.
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to