让简单的着色器构成一个着色器程序:
sh.vert
layout (location = 0) in vec3 position;
out vec4 vertexColor;
uniform vec2 u_vector;
void main() {
gl_Position = vec4(position, 1.0);
vertexColor = vec4(0.5f, 0.0f, 0.0f, 1.0f);
}
sh.frag
in vec4 vertexColor;
out vec4 color;
void main() {
color = vertexColor;
}
这样的着色器程序有很多,程序中的每个对象都可以使用自己的。问题是:有没有办法找出分配给统一变量的值u_vector
?
为此
glGetUniform*
,名称不言自明。:)或者您可以自己保留一份制服价值的副本。