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

时间:2012-06-03 13:52:09

标签: iphone ios opengl-es

在苹果的文档中:(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上有多少单位,这是否意味着没有限制?

3 个答案:

答案 0 :(得分:8)

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

glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &MaxTextureUnits);

请注意,顶点着色器和片段着色器中允许的纹理单元数也有单独的数字。他们将使用常量GL_MAX_VERTEX_TEXTURE_IMAGE_UNITSGL_MAX_TEXTURE_IMAGE_UNITSCOMBINED号码是两者同时可用的号码。

答案 1 :(得分:2)

Apple的iOS Device Compatibility Reference

上有iPhone和iPad上所有硬件的详细列表

基于此,您可以安全地在任何 iOS设备上使用 8 纹理单元

答案 2 :(得分:0)

实际上答案是在您链接的相同页面中:

  

PowerVR SGX上的OpenGL ES 2.0

     

限制

     

...

     

您可以在片段着色器中使用最多8个纹理。您不能在顶点着色器中使用纹理查找。

     

...