I’m using openscenegraph to apply vertex/fragment shaders to a whole scene.
I’m beginning to suspect an opengl misunderstanding so just a quick question to be sure :
with the same fragment program bound,
can I update its local parameters between
two primitives draw?
You need to “use” a specific program object before setting any of its uniform parameters.
Here’s an example:
// set program 1 parameters
glUseProgramObjectARB(program1);
glUniform1f(someParam, 1.0);
// set program 2 parameters
glUseProgramObjectARB(program2);
glUniform1f(otherParam, 2.0);
// switch back to default fixed function rendering
glUseProgramObjectARB(0);