[osg-users] reset root color to original colors

Robert Osfield robert.osfield at gmail.com
Wed May 25 00:39:11 PDT 2016


Hi Bruno,

It's impossible for us to know exactly what you are doing given the
explanation, so have to guess at the possibilities.

If you shader is using per vertex colours to determine the colours
then simply reassigning the new colour to the geometry, and calling
Geometry::dirtyDisplayList() if you are using display lists, will be
sufficient.  If you are using uniforms to set the colour then simply
changing the uniform value will be sufficient.

Robert.

On 24 May 2016 at 23:17, Bruno Oliveira <bruno.manata.oliveira at gmail.com> wrote:
> Hello,
>
> I have one single root node in my scene graph. I have a vertex array and a
> color array. I susually use them in conjunction to see my vertices with the
> original colors, with
>
>         ret->setColorArray(m_colors);
>         ret->setColorBinding(osg::Geometry::BIND_PER_VERTEX);
>
>
> Now I am adding the option for custom shaders. This is done with
> osg::Programs, and adding the program to the stateset of the root node.
>
>     osg::ref_ptr<osg::Program> program = new osg::Program;
>     program->setName(m_name);
>     program->addShader(new osg::Shader(osg::Shader::VERTEX, m_vertex));
>     program->addShader(new osg::Shader(osg::Shader::FRAGMENT, m_fragment));
>
> Now I want to reset this, and assign the original colors I have in the color
> Array back again. How can I do this? Do I have to create a new shader for
> applying the custom colors in the color array? Or can I reset this in a
> simpler fashion?
>
> _______________________________________________
> 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