Ios iPad缺少OpenGL扩展字符串GL\U APPLE\U texture\U 2D\U limited\U npot

Ios iPad缺少OpenGL扩展字符串GL\U APPLE\U texture\U 2D\U limited\U npot,ios,ipad,opengl-es,Ios,Ipad,Opengl Es,在我的iOS游戏中,我想使用GL_APPLE_texture_2D_limited_npot扩展来节省内存(游戏中有npot纹理,在我当前的实现中,我添加了一些填充,以使这两个功能相同) 我正在用我的iPad(第一代)进行测试。到目前为止,我读到的每一件事都表明,所有支持OpenGLES2(包括iPad)的iOS设备也支持GL_APPLE_texture_2D_limited_npot(这非常好,因为我的游戏使用OpenGLES2)。我已经在我的iPad上进行了测试,它确实支持(如果我将wrap

在我的iOS游戏中,我想使用GL_APPLE_texture_2D_limited_npot扩展来节省内存(游戏中有npot纹理,在我当前的实现中,我添加了一些填充,以使这两个功能相同)

我正在用我的iPad(第一代)进行测试。到目前为止,我读到的每一件事都表明,所有支持OpenGLES2(包括iPad)的iOS设备也支持GL_APPLE_texture_2D_limited_npot(这非常好,因为我的游戏使用OpenGLES2)。我已经在我的iPad上进行了测试,它确实支持(如果我将wrap设置为GL_CLAMP_to_EDGE,我会移除填充,图像也会工作),但是当我调用glGetString(GL_扩展)时,扩展名不会显示。守则:

const char *extensions = (const char *)glGetString(GL_EXTENSIONS);
std::cout << extensions << "\n";

为什么此扩展不与glGetString(GL_扩展)一起显示?检查它的正确方法是什么?所有OpenGLES2 iOS设备真的支持它吗?

OpenGLES2.0在规范中支持2种纹理的非增强功能。没有必要延期。规范如下:(第69页):

如果wt和ht为指定的图像宽度和高度,并且如果wt或ht为 小于零,则生成错误无效的_值。 二维纹理图像的最大允许宽度和高度 对于从零级到k级的图像阵列,必须至少为2k lod,其中k是对数 最大纹理大小的基2。lod是图像阵列的细节级别。 对于任何细节级别大于k的图像阵列,它可能为零。错误 如果指定的图像太大而无法存储在下,则生成无效的_值 任何条件

关于两个限制(即OpenGLES1.x标准)的威力,一个字也没有


如果您阅读了扩展规范-,那么您会注意到它是根据OpenGL ES 1.1规范编写的。

感谢规范链接。我看了一下,我必须补充一点,它确实提到了两种纹理的非幂。OpenGLES2不完全支持NPOT纹理,只是OpenGLES1 GL_APPLE_texture_2D_limited_NPOT扩展似乎是OpenGLES2的一部分(因此它不是扩展,也不是glGetString(GL_扩展)返回的)。夹钳到边缘的限制仍然适用于OpenGLES2。不,GLES2完全支持NPOT纹理。就像桌面GL2一样。从OpenGLES2规范(您的链接):3.8.2着色器执行,在纹理访问时,它说“如果以下任何条件为真,则从片段着色器调用采样器将返回(R,G,B,a)=(0,0,0,1):”。。。“•调用二维取样器,相应的纹理图像是两个图像的非幂次(如第3.7.7节的Mipmapping讨论中所述),并且纹理包裹模式不是钳制到边缘,或者缩小过滤器既不是最近的也不是线性的”。我可以在我的iPad上确认这种行为(即,如果我将wrap设置为REPEAT,NPOT将变为黑色)。
GL_OES_depth_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_texture_lod GL_EXT_texture_filter_anisotropic GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_IMG_read_format GL_IMG_texture_compression_pvrtc