Opengl统一行为

Opengl uniform behaviour

我注意到有些事情在 opengl 文档中没有得到很好的解释。如有不妥请指正

  1. 如果程序不是 opengl 当时正在使用的程序,则无法设置 uniform 的值。这将产生一个错误。

  2. 如果你在程序A中设置了一个制服的值,然后切换到程序B,再切换回程序A,该值保持不变。这个靠谱吗?

  3. 无法为当时未使用的程序设置统一值。有解决方法吗?

  1. Direct State Access extension(包含在核心 4.5 中)允许您使用 glProgramUniform*EXT 将制服设置为非绑定程序,您需要指定程序。

  2. 每个程序存储制服,

  3. 见1