Hi Paul,

    One of the default osgUtil::Optimizer flags is
    SHARE_DUPLICATE_STATE. So if two StateSets are otherwise identical
    and would be shared under this optimization, adding a different
    material code to the description list of the two StateSets would
    impair that optimization.

From what I can see, the StateSet comparison only compares Uniforms and StateAttributes (both normal and texture attributes). See Optimizer::StateVisitor::optimize() in osgUtil/Optimizer.cpp.

So adding different descriptions to two StateSets that are otherwise identical will actually result in only one of the sets of descriptions "winning" once the stateset is shared. So if, as I said, the SMC is associated to a texture or a material (in the sense of an osg::Material), then that's fine, there will never be a different SMC when the textures/materials are identical.

Anyways, if adding it to the nodes is fine, go with that, I was just saying that it sounded natural to me (anything textured as concrete should have the SMC of concrete, and setting the SMC in the descriptions of the stateset gives you this sharing for free) but I don't know how it actually works in the OpenFlight format, so if what I say is nonsense, then just disregard it. Then again no one has yet said that this association is not actually the case, if that had been said I would just have dropped the subject altogether :-)

J-S
--
______________________________________________________
Jean-Sebastien Guay    [email protected]
                               http://www.cm-labs.com/
                    http://whitestar02.dyndns-web.com/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to