私は現在、OpenGL(セパラブルシェーダステージ)のシェーダパイプラインオブジェクトと、より古いスタイルのシングルプログラムglUseProgram()
を使用しています。最初glUseProgramPipeline
を呼び出す前にglUseProgram(0)
を設定せずにOpenGLバインディングシェーダのステージとプログラムの混乱
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);
:
If there is a current program object established by `glUseProgram`,
the bound program pipeline object has no effect on rendering or uniform updates.
私が行うことができるように思われるので、これは私に混乱して:私は、ドキュメントにそれが言う、思ったんだけど。私が思ったドキュメンテーションは、それがうまくいかないことを暗示していましたが、私はこのようにうまく表現できます。 glBindProgramPipeline
を呼び出す前にglUseProgram(0)
を設定する必要がありますか?
@BDLああ、私はそれを理解していなかった。うまくいけば誰かが明らかにすることができます。 – Zebrafish