我注意到在OpenGL文档中有一些未被很好解释的细节。如果我有错,请纠正我。
如果OpenGL当前没有使用该程序,则无法设置uniform的值,这会生成一个错误。
如果您在程序A中设置了uniform的值,然后切换到程序B,再切换回程序A,该值将保留。这可靠吗?
当前没有办法设置未被使用的程序的uniform值,是否有解决方法?
glProgramUniform*
实际上是 OpenGL 4.1 的核心功能(它是与GL_ARB_separate_shader_objects
同时引入的),并且也可在提供GL_EXT_direct_state_access
的旧实现中使用。 - Andon M. Coleman