opengl基础学习(6)

GLSL中的Uniform

Uniform是变量类型的一种修饰符,uniform的空间被顶点着色器和片段着色器分享;

需要注意的是,uniform被存储在硬件被称为常量存储,这是一种分配在硬件上的存储常量值的空间。因为这种存储需要的空间是固定的,在程序中这种uniform的数量是受限的。这个限制能通过读gl_MaxVertexUniformVectorsgl_MaxFragmentUniformVectors编译变量得出。( 或者用GL_MAX_VERTEX_UNIFORM_VECTORSGL_MAX_FRAGMENT_UNIFORM_ VECTORS为参数调用glGetIntegerv)OpenGL ES 2.0必须至少提供256 个顶点着色器uniform 和224个片段着色器uniform

常见的形式是glUniformXX,后面跟随的是数据的类型,支持的类型有

  • float glUniform1f
  • float[] glUniform1fv
  • matrix glUniformMatrix2fv

类似的还有不少。