ich hab da mal zwei Fragen zur OpenGL Optimierung:
Angenommen, ich rendere hintereinander verschiedene 2D Sprites, die unterschiedliche Shader brauchen, was ist performanter?
1. Ich setze vor jedem Rendern das Shader-Programm
Code: Alles auswählen
glUseProgram(sprite->GetShaderProgram());
Code: Alles auswählen
if (sprite->GetShaderProgram() != this->currentShaderProgram)
{
glUseProgram(sprite->GetShaderProgram());
this->currentShaderProgram = sprite->GetShaderProgram();
}
Wäre es besser, wenn ich für das Rendern von Linien ein extra ShaderProgram schreibe, und 2 verschiedene Vertex-Typen nehme (mit und ohne Texture-Koordinaten)? Und dann halt das Shader-Program immer hin und her schalte?
Gruß