glUniform4fv(glGetUniformLocation(ID, name.c_str()), count, v);
通过这种方式来进行赋值,ID就是生成的shader
ID = glCreateProgram();
name就是要设置的fs中的变量名,比如申明了一个数组
uniform vec4 color_array[20];
count表示的是要设置多少个值
float color[] = {0.731, 0.345, 0.312, 1.0,
1, 0.5, 1, 1,
1, 1, 0.5, 1};
比如上方就是3个vec4的值,所以count是3
v就是一个float类型的指针,直接传color就可以
glUniform4fv(glGetUniformLocation(ID, "color_array"), 3, color);
其他类型也是类似的