GL_ACTIVE_UNIFORMS可能不会返回没有用到的uniform

To query for the list of active uniforms in a program, you first call glGetProgramiv with the GL_ACTIVE_UNIFORMS parameter (as described in the previous section). This will tell you the number of active uniforms in the program. The list includes uniforms in named uniform blocks, default block uniforms declared in shader code, and built-in uniforms used in shader code. A uniform is considered "active" if it was used by the program. In other words, if you declare a uniform in one of your shaders but never use it, the linker will likely optimize that away and not return it in the active uniform list. You can also find out the number of characters (including the null terminator) that the largest uniform name has in the program; this can be done by calling glG

原文地址:https://www.cnblogs.com/time-is-life/p/7595563.html