glGetActiveUniformBlock
将由GL_UNIFORM_BLOCK_BINDING
返回什么,如果指定的统一块没有绑定到任何绑定索引? http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlock.xml说:GL_UNIFORM_BLOCK_BINDING当块没有被绑定到索引时
如果以前没有指定统一块,则返回零。
这是否意味着零将被返回为未绑定块?如果是,那么这是否意味着在程序链接之后所有的unifrom块默认绑定到零指数?同样,如果是的话,那么我怎样才能知道指定的块是否被绑定到零或者它从未绑定到任何索引?
当然我知道设置了什么,但是我在代码的不同部分请求了'GL_UNIFORM_BLOCK_BINDING'。因此这种请求的特殊错误状态可能有助于检测错误的调用并使测试更容易一些。 – Sergey
@Sergey:这暗示了代码中的一些混淆。就个人而言,我会建议为这类东西建立一个简单的约定。一种块总是使用索引0(例如,在所有渲染着色器之间共享的投影矩阵)。索引1涉及其他内容(比如模型到视图的转换)。索引2可能是照明参数去的地方。等等。或者换一种说法,设置一些事情,这样你就不用问我了。我看到它的方式,几乎在任何时候你使用'glGet *',你可能做错了什么。 –