iPhone上的OpenGL ES 2.0 - 我可以使用多少纹理单元?

Or *_*bel 5 iphone opengl-es ios

在苹果的文档中:( http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html)

它说"PowerVR SGX上的OpenGL ES 1.1""有8个可用的纹理单元."

它没有说明OpenGL ES 2.0上有多少单位,这是否意味着没有限制?

use*_*321 8

您的应用程序应该在运行时以编程方式检查,而不是询问并获得将来可能或不正确的答案:

glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &MaxTextureUnits);
Run Code Online (Sandbox Code Playgroud)

请注意,顶点着色器和片段着色器中允许的纹理单元数也有单独的数字.他们会使用常数GL_MAX_VERTEX_TEXTURE_IMAGE_UNITSGL_MAX_TEXTURE_IMAGE_UNITS.该COMBINED数字是两者同时可用的数字.

  • 对不起 - 在ES 2.0中,它是`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS`. (3认同)
  • 实际上有'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS`和`GL_MAX_TEXTURE_IMAGE_UNITS`和`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS`枚举.第一个是用于顶点着色器中允许使用的计数纹理单位,第二个用于片段着色器,第三个用于两个着色器组合. (3认同)