As title said, how do i pass different uniform vec4 (or something else) value to shader each time call glDrawElements? Is posible to do like this:
Shader:
uniform vec4 material_ambident;
void main(void)
{
// Do somethings
}
and render() like this:
glUseProgram(program);
glUniform4fv(unf_matrial_ambident, 2, &float_array[0]);
// Bind buffer or somethings ...
glDrawElements(..);
glUniform4fv(unf_matrial_ambident, 2, &another_float_array[0]);
// Bind another buffer
glDrawElements(..);
Yes, you can change uniforms between drawing batches, in the exact way as you think.