GLSL Interface Block参考

http://www.opengl.org/wiki/Interface_Block_(GLSL)

http://stackoverflow.com/questions/9916103/opengl-3-1-4-2-dynamic-uniform-arrays

glGetProgramResourceIndex

glGetProgramResourceiv: GL_BUFFER_BINDING

glShaderStorageBlockBinding

GL4.4 Spec says: 

    Each of a program’s active shader storage blocks has acorresponding shader storage buffer object binding point. When a program object is linked, the shader storage buffer object binding point assigned to each of its active shader storage blocks is reset to the value specified by the corresponding binding layout qualifier, if present, or zero otherwise. After a program is linked, the command

    void ShaderStorageBlockBinding( uint program, uint storageBlockIndex,uint storageBlockBinding );

changes the active shader storage block with an assigned indexof storageBlockIndex in program object program.

NOTE: Page 64, OpenGL Programming Guide, 8th edition says, "to explicitly control a uniform block’s binding, call glUniformBlockBinding() before calling glLinkProgram()". That's bull shit.

glBindBufferBase

原文地址:https://www.cnblogs.com/lilei9110/p/3291193.html