Hi Christian
thanks Sebastian. Does this piece of code have to be placed in the
beginning of the program during the initialization phase?
I haven"t come across these classes so far... seems to be advanced
stuff that is not even covered in the OSG books...
You can place them anywhere, but to get an effect, you should activate
before loading.
I'm also puzzled why these options are kept below the radar, as they
enable loading of databases with huge count of references which share
the same geometry and textures.
It should also work for multiple referenced images.
As for the books: They are great for starting and will help you get an
idea where to go when you encounter a real-life problem, but they won't
show you all the tricks ;-)
Cheers
Sebastian
Christian
2014-12-01 18:10 GMT+01:00 Sebastian Messerschmidt
<[email protected] <mailto:[email protected]>>:
Hi Christian,
Also you could try to activate caching and sharing of nodes/textures:
Here is some snippet from my code:
<snip>
{
osgDB::SharedStateManager::ShareMode mode =
osgDB::SharedStateManager::SHARE_NONE;// =
osgDB::SharedStateManager::SHARE_ALL;
mode = mConfig.mGlobalState.mShareStates ?
static_cast<osgDB::SharedStateManager::ShareMode>(mode |
osgDB::SharedStateManager::SHARE_STATESETS) : mode;
mode = mConfig.mGlobalState.mShareTextures
?static_cast<osgDB::SharedStateManager::ShareMode>(mode |
osgDB::SharedStateManager::SHARE_TEXTURES) : mode;
osgDB::Registry::instance()->getOrCreateSharedStateManager()->setShareMode(mode);
}
{
//setup caching
osgDB::Options::CacheHintOptions opts;
opts = static_cast<osgDB::Options::CacheHintOptions>(opts
|osgDB::Options::CACHE_IMAGES);
opts = static_cast<osgDB::Options::CacheHintOptions>(opts
|osgDB::Options::CACHE_NODES);
opt->setObjectCacheHint(static_cast<osgDB::Options::CacheHintOptions>(opts));
osgDB::Registry::instance()->setOptions(opt);
}
</snip>
Cheers
Sebastian
Hi,
when I use osgDB::readNodeFile on several objects, and those
objects all reference the same texture file on disk - is it
possible to make OSG use the same texture on all loaded
subgraphs? Currently it seems like I have the same texture loaded
over and over, consuming precious texture memory (and also
rescaling the texture to powers of 2 multiple times...)
Can osgUtil::Optimizer somehow recognize identical texture file
names and make the entire scene graph use the same texture handles?
Christian
_______________________________________________
osg-users mailing list
[email protected]
<mailto:[email protected]>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
<mailto:[email protected]>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org