>>       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.
>
> Hi Doug -- Just thinking of this in OpenGL terms, the dreaded "blank
> screen"
> can have many many causes.
>
> One possible explanation: The cull traversal on one of the displays
> randomly
> thinks that everything is culled. This could be due to a configuration
> issue
> for the camera controlling that display, the modelview/projection matrices
> are bogus and/or the view volume used during the cull traversal isn't set
> correctly. You might consider hacking the code to dump such information
> out
> per frame. Yes, it will generate gobs of output, but if you do a short run
> and see a flash, then examine the debug output, any one-frame
> irregularities
> should jump out at you. If nothing shows up, then the problem is somewhere
> else.
>
If I make the SceneView::cull call guarded with a mutex then the problem
goes away. I printed out the frustum values and view matrix and nothing
seemed to be wrong there. Any ideas on what might not be thread safe in
cull or what I may be doing wrong with my management of cull settings?
Also, this code is not using anything special in terms of hardware
occlusion culling or the small feature culling.

> The other thought I had relates to the ClearNode. Does the problem go away
> if you eliminate the ClearNode and just let SceneView do its own clearing?
>    -Paul
>

Doug
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to