Hi John,

It's sounds like you are abusing the OSG, i.e. using in ways that it's
not designed to be used.  Refactoring your scene graph usage slightly
will probably fix the problems you have without having to fight the
OSG continuously.

First up some basics,  the updating of the scene graph is designed to
be be done wholly before the cull and draw traversals, this makes it
possible to thread the scene graph without requiring complex
multi-buffering that you'd find in Performer/OpenSG.   You should
consider updating the scene graph during cull and draw prohibited.
The only exception to this is when you multi-buffer internal
structures.

Now given thrashing node parameters like you are doing is prohibited,
so next you need to find an alternative, the hint of how to do it is
in the last sentance above - you need to buffer you scene graph
elements so that instead of one object that you change the state of,
you have one node or one data element per view/camera.  You can do
this via cull callbacks that's maintain local buffer of data that is
selected on the fly, or to just use separate subgraphs with the
topmost node unique for each view/camera.   You can set the cull masks
individually for cameras, so you could use NodeMask's to select which
part of the scene graph you want to use in each instance.

Now if you don't want to follow this advice, we then I'm afraid I'll
just stand back and stop giving you support on this topic, I really
don't have time to go chasing people abusing the scene graph.

Robert.



On Fri, Jun 27, 2008 at 5:14 PM, Argentieri, John-P63223
<[EMAIL PROTECTED]> wrote:
> Robert,
>
> We've created our own event processing system. We need to manage a
> common scene with different node masks, switch node settings, etc. The
> problem is that the event traversal and update traversal happens for all
> views before the cull/draw traversal. So if we follow your methods of
> processing events in the event traversal or update traversal, we end up
> with all views looking like the most recently created view, instead of
> being unique. If I change the scene graph in the camera's final draw
> callback, it works but OSG spits out a bunch of OpenGL errors for what
> I'm assuming is the current frame. Thanks for your time.
>
> Sincerely,
> John
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Robert
> Osfield
> Sent: Thursday, June 26, 2008 6:16 AM
> To: OpenSceneGraph Users
> Subject: Re: [osg-users] osgViewer help needed
>
> Hi John,
>
> What operation are you needing to do?
>
> Robert.
>
> On Tue, Jun 24, 2008 at 12:30 AM, Argentieri, John-P63223
> <[EMAIL PROTECTED]> wrote:
>> All,
>>
>> I need to have a callback from within osgViewer::CompositeViewer that
>> happens just before each graphics context's renderer does cull_draw().
>
>> It can't be part of the cull traversal or the camera's pre-draw
>> traversal, or the update traversal. Single threaded, and right before
> the cull traversal.
>> Does anyone know of a way that this can be done without gutting
> osgViewer?
>>
>> Many thanks,
>> John Argentieri
>>
>> _______________________________________________
>> 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.or
> g
> _______________________________________________
> 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