Opengl 如何在每次调用gldrawerelements时将不同的统一vec4传递给着色器?
正如标题所说,每次调用gldrawerelements时,如何将不同的统一vec4(或其他)值传递给着色器?可以这样做:Opengl 如何在每次调用gldrawerelements时将不同的统一vec4传递给着色器?,opengl,glsl,Opengl,Glsl,正如标题所说,每次调用gldrawerelements时,如何将不同的统一vec4(或其他)值传递给着色器?可以这样做: glUseProgram(program); glUniform4fv(unf_matrial_ambident, 2, &float_array[0]); // Bind buffer or somethings ... glDrawElements(..); glUniform4fv(unf_matrial_ambident, 2, &another_f
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(..);
着色器:
uniform vec4 material_ambident;
void main(void)
{
// Do somethings
}
和render()如下所示:
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(..);
是的,您可以按照您认为的正确方式在绘图批次之间更换制服。是时候接受Cat Plus的回答了!