Hi Again,

Thanks for you quick response, unfortunately that still doesn't seem to
solve my problem.  I can however boil it down to a very specific
question.
In my drawImplementation I attempt to set the ActiveTexureUnit and it
does not appear to change.  Below is a small code snippet:

state.setActiveTextureUnit(0);

state.apply();
   
std::cout << "Active Tex Unit: " << state.getActiveTextureUnit();


My problem is that with or without the state.apply(), the active texture
unit never changes from one.  So really my question is, how can I make
the active texture unit be zero?

Again, thanks for all the help.

Brad



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Robert
Osfield
Sent: Thursday, June 15, 2006 1:11 AM
To: osg users
Subject: Re: [osg-users] enabling/disabling textures

HI Brad,

On your custom drawable just do:

  drawable->getOrCreateStateSet()->setTextureMode(0,GL_TEXTURED_2D,
osg::StateAttribute::ON);

Or

  drawable->getOrCreateStateSet()->setTextureMode(0,GL_TEXTURED_2D,
osg::StateAttribute::ON | osg::StateAttribute::PROTECTED);


The later protecting any settings from being overridden from StateSet
inherited from above.

Robert.

On 6/14/06, Anderegg, Brad USA <[EMAIL PROTECTED]> wrote:
> Hi,
>
>   I have an osg::Drawable with a drawImplementation that uses texture
> unit zero.  I have tried using the code below on the stateset of my
> drawable to disable all other texture units.  Unexpectedly I find the
> texture unit which is enabled to be the last one I disabled with
> stateset->setTextureMode().  Is there anyway to set up the stateset so
> texture unit 0 is guaranteed to be the active texture unit when my
draw
> implementation gets called, or is there something I am missing?
>
> Thanks,
> Brad
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Robert
> Osfield
> Sent: Tuesday, December 20, 2005 11:49 AM
> To: osg users
> Subject: Re: [osg-users] enabling/disabling textures
>
> The StateSet manipulator works just fine for toggleing textures off,
> and then back on.  The code is:
>
>                 unsigned int mode =
> osg::StateAttribute::OVERRIDE|osg::StateAttribute::OFF;
>                 if ( _texture ) mode =
> osg::StateAttribute::INHERIT|osg::StateAttribute::ON;
>                 for( unsigned int ii=0; ii<_maxNumOfTextureUnits; ii++
)
>                 {
>                         _drawState->setTextureMode( ii, GL_TEXTURE_1D,
> mode );
>                         _drawState->setTextureMode( ii, GL_TEXTURE_2D,
> mode );
>                         _drawState->setTextureMode( ii, GL_TEXTURE_3D,
> mode );
>                         _drawState->setTextureMode( ii,
> GL_TEXTURE_RECTANGLE, mode );
>                         _drawState->setTextureMode( ii,
> GL_TEXTURE_CUBE_MAP, mode);
>                 }
>
>
>
> On 12/20/05, Matthias Ferch <[EMAIL PROTECTED]> wrote:
> > i want to make three rendering modes available for my users -
> wireframe,
> > solid geometry and textured geometry. for the first 2 ones i disable
> > textures like this:
> >
> > SceneView->getLocalStateSet()->setTextureMode( 0, GL_TEXTURE_1D,
> > osg::StateAttribute::OVERRIDE | osg::StateAttribute::OFF );
> > SceneView->getLocalStateSet()->setTextureMode( 0, GL_TEXTURE_2D,
> > osg::StateAttribute::OVERRIDE | osg::StateAttribute::OFF );
> > SceneView->getLocalStateSet()->setTextureMode( 0, GL_TEXTURE_3D,
> > osg::StateAttribute::OVERRIDE | osg::StateAttribute::OFF );
> >
> > but when i turn them on again, nothing happens.. have i
misunderstood
> > something? thx :)
> > _______________________________________________
> > osg-users mailing list
> > [email protected]
> > http://openscenegraph.net/mailman/listinfo/osg-users
> > http://www.openscenegraph.org/
> >
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to