int maxFFPTextureUnits;
int maxGPUTextureUnits;
int maxCOBTextureUnits;
int maxTextureCoords;
glGetIntegerv( GL_MAX_TEXTURE_UNITS, &maxFFPTextureUnits );//4
glGetIntegerv( GL_MAX_TEXTURE_IMAGE_UNITS_ARB, &maxGPUTextureUnits );//32
glGetIntegerv( GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxCOBTextureUnits );//192
glGetIntegerv( GL_MAX_TEXTURE_COORDS , &maxTextureCoords );//8
GL_MAX_TEXTURE_UNITS
指示支持的常规纹理单元的数量。每个常规纹理单元包括纹理坐标集和纹理图像单元。常规纹理单元可用于固定功能(非着色器)渲染。该值必须至少为2。可以从顶点和片段着色器访问其他纹理坐标集和纹理图像单元。
GL_MAX_TEXTURE_IMAGE_UNITS
即可用于从片段着色器访问纹理贴图的最大支持纹理图像单位。该值必须至少为2。
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
即支持的最大纹理图像单位,可用于从顶点着色器和片段处理器访问纹理贴图。如果顶点着色器和片段处理阶段都访问相同的纹理图像单元,则这将被视为使用两个纹理图像单元来克服此限制。该值必须至少为2。
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS是所有不同阶段着色器能使用的纹理单元数量的总和,每个阶段着色器使用32个纹理单元,6个阶段着色器可使用6*32=192个纹理单元。