Yep,
I came across the same question, thus I solved it some
other way.
Björn
--- Christoph Fuenfzig <[EMAIL PROTECTED]>
schrieb:
>
> Hi,
>
> Björn Harmen Gerth wrote:
>
> >Hello,
> >
> >okay, I have the feeling my question is not quite
> new.
> >In case there has already been a thread in this
> >mailing list covering the topic, please send me
> simply
> >the subject of that thread.
> >
> >How about using multiple materials in one NodeCore?
> Is
> >there a reason against it?
> >
> >Currently I have an object which has to be drawn
> with
> >several materials. For each material, I'm building
> a
> >NodeCore derived from MaterialDrawable, which keeps
> a
> >list of the faces of my object to be drawn using
> that
> >material.
> >
> >
> If I understand it correctly, you do not want to get
> into some
> Multi-Pass issues,
> where you have one material for each pass.
> It is just to have a single scenegraph node instead
> of several.
>
> >It would be much simpler to just have one NodeCore
> >with my object and a list of materials.
> >
> >Is it possible to do something like this (altered
> from
> >OSGMaterialDrawable.cpp):
> >
> >Action::ResultE
> MyNodeCore::renderActionHandler(Action
> >*action)
> >{
> > RenderAction *a = dynamic_cast<RenderAction
> >*>(action);
> >
> > Material::DrawFunctor func;
> > func = osgTypedMethodFunctor1ObjPtr(this,
> >MyNodeCore::drawPrimitives);
> >
> > for(<< each mat in getMFMaterials() >>)
> > a->dropFunctor(func, mat.getCPtr());
> >
> > return Action::Continue;
> >}
> >
> >Action::ResultE MyNodeCore::drawPrimitives(Action
> >*action)
> >{
> > RenderAction *a = dynamic_cast<RenderAction
> >*>(action);
> > Material *m=a->getMaterial();
> > myObject.drawFacesOfThisMaterial(m);
> >}
> >
> >
> This could work, nearly!
> The only problem is finding the material in the
> drawPrimitives functor.
> I have serious doubts that
> a->getMaterial() will work in the draw functor.
> There is a member RenderAction::_pActiveState which
> could give you some
> information about
> the currently active material, but not directly...
> I am not sure if that is sufficient.
>
> Regards,
> Christoph
>
>
>
-------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT
> Products from real users.
> Discover which products truly live up to the hype.
> Start reading now.
>
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Opensg-users mailing list
> [email protected]
>
https://lists.sourceforge.net/lists/listinfo/opensg-users
>
___________________________________________________________
Gesendet von Yahoo! Mail - Jetzt mit 250MB Speicher kostenlos - Hier anmelden:
http://mail.yahoo.de
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users