[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