Hi all,

I think I've figured out why sometimes procedural variables on shaders 
are not updated correctly (at least for 2; reports about the same 
problem in 1.x are still unsolved unfortunately): In 
DrawEnv::activateState() line ~340 there is this test:

if(pNewState         != _pActiveState        ||
    pNewStateOverride != _pActiveStateOverride  )
{
    changeTo(...);
}

If only have example scenes that use OSG_ENABLE_NEW_SHADER=OFF and use 
SHLChunk, but I don't see anything that would make it better for the new 
shader infrastructure as that also relies an changeFrom being called 
regardless of a change being necessary.

The trivial fix is to just remove the test, but I'm concerned about 
performance implications this might have (I've not looked into those 
yet) and was wondering what alternatives there might be?
One thing I could think of is expand the notion of a dependency from 
shader variables to StateChunks and State itself, so that the above test 
could have an else if branch that tests if the state is object dependent.

Comments, ideas?

        Cheers,
                Carsten

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Opensg-core mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-core

Reply via email to