如果指定的统一块未绑定到任何绑定索引,glGetActiveUniformBlock
将使用GL_UNIFORM_BLOCK_BINDING
返回什么? http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlock.xml说:
如果之前未指定统一块,则返回零。
这是否意味着未绑定块将返回零?如果是,是否意味着在程序链接之后,默认情况下所有unifrom块都绑定到零结束索引?再次,如果是,那么如何判断指定的块是否绑定为零或者它是否从未绑定到任何索引?
答案 0 :(得分:0)
前两个问题,是的。
同样,如果是,那么如何判断指定的块是否绑定为零或者它是否从未绑定到任何索引?
你没有。那又是什么目的呢?您应该从代码或着色器设置这些。在这两种情况下,您都知道设置了什么,因为您设置了它。除非您正在编写一些要求用户指定绑定的着色器工具,否则它无关紧要。
如果您正在编写这样的工具,那么只需向用户显示所有绑定的内容。如果多个统一块使用相同的索引,那么用户在解决冲突(或确认它是他们真正想要的)之前一直是非法的。