On 22.10.2015 18:36, Sebastian Messerschmidt wrote:
Hi,

I have a couple of elements in the scene which data variance is set to DYNAMIC 
to change them thread safe.
This will effectively kill performance as cull and draw are no longer executed 
in parallel. So if I'd set those elements to STATIC, where is the safe place to 
update them?
For instance I have some osg::Text which has to be changed every frame. Is it 
safe to change it in between the update and renderingTraversals?
Also, what about updateOperation? Is considered to modify drawables from there?

Cheers
Sebastian

Hi Sebastian,

First of all, I didn't know that cull and draw traversal can execute in 
parallel on a single scene. I always thought that cull and draw can only 
execute sequential (serial) in all available threading models. Anyway,  what I 
know for sure is that update and draw traversal can indeed execute in parallel 
within some threading models, and that is the reason why we need DYNAMIC 
variance, to tell drawing thread it must process dynamic elements first, and 
then immediately allow execution of the update traversal in a main thread while 
STATIC elements are still being rendered in a draw thread. I also suspect that 
next frame cannot start before all the static+dynamic elements are rendered. If 
I'm correct on this one, then few DYNAMIC elements should not affect frame rate 
at all, because there is plenty of time to do the processing while STATIC 
elements are still being rendered.

You might also want to have a look at osgBullet project where calculations are 
done in its own thread and then the results are synchronised with a scene graph 
in an update traversal through a triple buffering mechanism.

I also did a benchmark recently that shows what is the effect of different 
threading models on a geometry intensive scene. If someone is interested in 
results let me know...

Best Regards,
Robert Milharcic
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to