Czy wartości jednolite pozostają w cieniu GLSL, jeśli są niezwiązane?
Tworzę program, który używa dwóch różnych shaderów dla różnych różnych prymitywów. Moje pytanie brzmi, jeśli powiąż program, wyślę zmienne jednolite, a następnie skorzystam z innego programu cieniującego i powrócę do pierwszego, czy pozostaną jednolite wartości? Oto kilka pseudokodów:
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();
}
}