我正在编写一个使用两个不同着色器的程序。我的问题是:如果我绑定了一个程序,发送uniform变量,然后使用另一个着色器程序并返回到第一个程序,传递的uniform值是否会保留?以下是一些伪代码:
glUseProgram(shader1);
glUniform(shader1,...);
//stuff
for(elements in a list) {
if(element.type = 1) {
glUseProgram(shader2);
element.draw();
} else {
glUseProgram(shader1); //Here, do the uniforms from above remain, if shader2 was bound before?
element.draw();
}
}