在我的 iOS 应用程序(针对 iPad)中,我想使用非二次幂(NPT)纹理。我的 GL_VERSION 查询返回“OpenGL ES 2.0 APPLE”。根据规范,它应该支持 NPT 纹理,但一个简单的测试表明我需要将纹理大小调整为 2^N 才能显示出来。
Apple 不支持完整的 ES 2.0 规范吗?我在哪里可以找到不支持的文档?
我正在使用 Xcode 4.3.2 和 iOS 5.1。
编辑:
仔细查看 ES 2.0.25 规范(第 3.8.2 节),可以发现 NPOT 工作需要满足一些条件。基本上,如果我使用下面的设置,我可以加载 NPOT 纹理:
// use linear filetring
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
// clamp to edge
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
我应该关闭它还是回答我自己的问题?