Am 23.06.2015 18:05, schrieb Gianluca Natale:
Hi all,
I'm using OSG 3.0.1.
I have an issue when I try to retrieve the material properties from
the rendering info, in my custom drawable.
To be clearer:
I have a custom drawable, for which I implemented a
myDrawable::drawImplementation(osg::RenderInfo& osgRenderInfo).
When I try to get the material properties inside that function, by
following code:
osg::StateSet drwbStateSet;
osg::State *state = osgRenderInfo.getState();
state->captureCurrentState(drwbStateSet);
the returned material properties is invalid.
Specifically, I put a breakpoint in following function:
StateSet::setAttribute(StateAttribute *attribute,
StateAttribute::OverrideValue value)
that is called inside captureCurrentState.
When the attribute is an osg::Material, the _ptr is different from the
one allocated when the material has been set, in the state set
associated to a parent node of that drawable.
Furthermore, _userDataContainer is 0x0000000000000000, so no valid
osg::Material is returned in the captured state set.
User data defaults to nullptr. So if you're not setting it up that is
expected.
As you don't explain why you are trying to inspect state during draw it
is hard to guess what you are after.
I simply guess that your state is set up somewhere further up in the
stategraph (i.e. in one of the parents) and that state is set up lazy.
Maybe Robert can give some insights here.
Any idea of the possible cause of the issue? Where did I go wrong?
BTW, all other attributes (polygon offset, polygon mode, etc...) are
returned correctly.
Are you sure you are setting up an osg::Material state attribute somewhere?
Thanks,
Gianluca Natale
_______________________________________________
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