[osg-users] transparency becomes dark
u.hertlein at sandbox.de
Wed Jul 30 16:33:53 PDT 2008
Dieter Pfeffer wrote:
> I supposed that it has s.th to do with the missing material paramters; my
> idea was to change the original material of the node, therefore I set:
> osg::StateSet *ss = loadedModel ->getOrCreateStateSet();
> osg::Material* blendMaterial = (osg::Material*)(ss->getAttribute(osg::StateAttribute::MATERIAL));
> but the material is always NULL so I don't have the original material
> Is this the wrong function call ?
The function call is correct, you're probably looking in the wrong spot ;-)
I assume 'loadedModel' is the Node returned from 'readNodeFile'?
If this is the case than most likely this is only a Group node that contains the
rest of the scene graph. If you take a look at e.g. 'cow.osg' (or most of the
examples) you'll see that the Material isn't actually attached to the top node.
What you'll need to do is traverse the scene graph and find the Material node(s)
you're looking for. For example you could look for a Node with a certain name
and fetch it's Material. Also keep in mind that Materials are attached to
StateSets which may be attached to Nodes *or* Drawables (attached to Geodes).
More information about the osg-users