Thanks Jason, So, since I can't combine programs (I didn't necessarily mean multiple shaders, I just meant multiple programs), I decided to take this line of code:
program->addBindAttribLocation("indices", 6);
and move it to where I assemble my shader program and attach it to the node's
stateset. This way my nodeVisitor can still set my generic vertex array in
position 6 and my osg::Program's shader can access those index values by
including the following line in the frag shader:
in float indices;
I looked at the osg file that I wrote to disk and verified that my stateset's
program contained this line:
AttribBindingLocation indices 6
However, when I use indices in my shader, the resulting value is always equal
to 0.0, even though my VertexAttributeArray values range from 0.0 to 124.0. I
don't want to impose on you too much since you've already helped me out a great
deal, but I'm going to go ahead and attach an osg file that demonstrates this
behavior. The file is a simple human shape with 125 primitives. I created a
generic vertex array with index values sequential from 0-124. I also attached
a simple shader that paints everything green if the indices = 0 and red
otherwise. As you can see by opening this file in osgviewer, all values are
green. If you have time to look at it that would be fantastic but I completely
understand if you don't. Thanks again,
-Ethan
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=46200#46200
human.osg
Description: Binary data
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

