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

Reply via email to