[osg-users] Sharing statesets across files

Zach Deedler mynamezach at gmail.com
Sun Sep 16 13:14:46 PDT 2007


Hi Matt,

 

SharedStateManager is what you want.  I didn't have luck improving
performance with it, but you can check it out.  I believe the DatabasePager
shares the states when data is paged in if the SharedStateManager exists.
(I don't think it is initialized by default).  You have to call:

osgDB::Registry::instance()->getOrCreateSharedStateManager();

to create it, and then it should run from then on.

Look inside the osgDB::DatabasePager code for sharedState.

Also, osgDB::SharedStateManager.cpp

 

I think it is pretty time consuming, though, so it may not work for you.  I
think you'll get a decrease in memory usage, but also a decrease in
performance.  Its easy enough to try though.  (Just add the one line above
before you load any models).

 

  _____  

From: osg-users-bounces at lists.openscenegraph.org
[mailto:osg-users-bounces at lists.openscenegraph.org] On Behalf Of Matt
Franklin
Sent: Sunday, September 16, 2007 4:25 AM
To: osg-users at lists.openscenegraph.org
Subject: [osg-users] Sharing statesets across files

 

Is there a way of including a proxy stateset node or referencing a stateset
stored in another file? I am trying to split up a single model into smaller
pagable chunks. However, my original model makes significant use of shared
statesets to maximise reuse of textures. When I break up my model each leaf
node includes its own copy of the shared stateset. The total disk space used
by the resulting fragments is a factor of ten larger than the original file.
This in itself is not a problem but the resulting texture memory usage is
also a factor of ten larger as a result of the lack of reuse.

Thanks in advance,

Matt 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20070916/0a362848/attachment-0003.htm>


More information about the osg-users mailing list