GLSL中的Uniform
Uniform是变量类型的一种修饰符,uniform的空间被顶点着色器和片段着色器分享;
需要注意的是,uniform被存储在硬件被称为常量存储,这是一种分配在硬件上的存储常量值的空间。因为这种存储需要的空间是固定的,在程序中这种uniform的数量是受限的。这个限制能通过读gl_MaxVertexUniformVectors和gl_MaxFragmentUniformVectors编译变量得出。( 或者用GL_MAX_VERTEX_UNIFORM_VECTORS或GL_MAX_FRAGMENT_UNIFORM_ VECTORS为参数调用glGetIntegerv)OpenGL ES 2.0必须至少提供256 个顶点着色器uniform 和224个片段着色器uniform。
常见的形式是glUniformXX,后面跟随的是数据的类型,支持的类型有
- float glUniform1f
- float[] glUniform1fv
- matrix glUniformMatrix2fv
类似的还有不少。
PREVIOUSUnity window多分辨率解决方案