[osg-users] Help on multitexturing..

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Fri Apr 20 02:16:05 PDT 2018


Hi Marlin,


Re-phrasing Roberts advice:
<code>
osg::Uniform* sampler = new osg::Uniform(osg::Uniform::SAMPLER_2D, 
"NameOfTheSamplerInGLSL");
sampler->set(0); //assign unit
ss->addUniform(sampler);
ss->setTextureAttribute(0/*unit*/, texture0 ,osg::StateAttribute:ON );

osg::Uniform* sampler_1 = new osg::Uniform(osg::Uniform::SAMPLER_2D, 
"NameOfTheSamplerInGLSL_1");
sampler->set(1); //assign unit
ss->addUniform(sampler);
ss->setTextureAttribute(1/*unit*/, texture1 ,osg::StateAttribute:ON );
</code>
This works fine with two sampler2D objects in GLSL.


HTH & Cheers
Sebastian

Am 19.04.2018 um 20:06 schrieb Rowley, Marlin R:
> Hello,
> 
> I’ve been wracking my brain all day on trying to figure out how to do 
> this with no clear examples found online.
> 
> I have this set of calls in my C++:
> 
> mGroupState = mBoundGeometry->getOrCreateStateSet();
> 
>        
> mGroupState->getOrCreateUniform("BaseTexSampler",osg::Uniform::SAMPLER_2D)->set(mBaseColor);
> 
>        
> mGroupState->getOrCreateUniform("BaseWeight",osg::Uniform::FLOAT)->set(mBaseWeight);
> 
>        
> mGroupState->setTextureAttributeAndModes(BASE_TEXTURE_UNIT, mBaseColor,osg::StateAttribute::ON);
> 
> I’ve bound this base texture to texture unit (BASE_TEXTURE_UNIT = 1).
> 
> Later in the code, I have this in another function if I create another 
> layer with another texture:
> 
> mGroupState->getOrCreateUniform("TexLayerSampler0",osg::Uniform::SAMPLER_2D)->set(tex);
> 
>              
> mGroupState->setTextureAttribute(BASE_TEXTURE_UNIT+1,tex,osg::StateAttribute::ON);
> 
> Where I’ve created a second texture and want it to reside in texture unit 2.
> 
> However, in my shader code when indexing the TexLayerSampler0, I only 
> get base texture.
> 
> finalColor = texture(TexLayerSampler0, LayeredTexCoords[0].st);
> 
> Which is wrong.  I’m stil trying to figure out OpenGL and how it works 
> along with OSG so sorry for the inexperience.
> 
> -M
> 
> ----------------------------------------
> 
> Marlin Rowley
> 
> Software Engineer, Staff
> 
> cid:image002.jpg at 01D39374.DEC5A2E0
> 
> /Missiles and Fire Control/
> 
> 972-603-1931 (office)
> 
> 214-926-0622 (mobile)
> 
> marlin.r.rowley at lmco.com <mailto:marlin.r.rowley at lmco.com>
> 
> 
> 
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> 


More information about the osg-users mailing list