J'utilise actuellement des objets de pipeline shader dans OpenGL (étapes de shader séparables) avec les anciens programmes simples de style avec glUseProgram()
. Je me demande, dans la documentation, il dit:Étapes et programmes de shaders de liaison OpenGL
If there is a current program object established by `glUseProgram`,
the bound program pipeline object has no effect on rendering or uniform updates.
Ceci est source de confusion pour moi parce que je semble être en mesure de le faire:
glUseProgram(6); // Render using the single program
glBindProgramPipeline(pipeline_ID);
glUseProgramStages(pipeline_ID, GL_VERTEX_SHADER_BIT, shaderID);
glUseProgramStages(pipeline_ID, GL_FRAGMENT_SHADER_BIT, shaderID);
sans avoir d'abord la mise en glUseProgram(0)
avant d'appeler glUseProgramPipeline
. La documentation que je pensais impliquait que ça ne marcherait pas, mais je peux rendre ça comme ça. Est-il nécessaire de définir glUseProgram(0)
avant d'appeler glBindProgramPipeline
?
@BDL Oh je vois, je ne l'ai pas compris comme ça. J'espère que quelqu'un peut clarifier. – Zebrafish