【发布时间】:2014-08-05 17:54:32
【问题描述】:
我请你参考这个问题:
GLSurfaceView displaying black on Nexus 7 with Android 4.2
事实证明,当提问者将纹理从 NPOT 更改为 POT 纹理时,提问者的问题得到了解决。
我的困惑源于官方的 OpenGL ES 2.0 规范,该规范声明 OpenGL ES 2.0 支持 NPOT 纹理(只是不支持 mipmap,只支持 CLAMP_TO_EDGE 环绕模式)
Nexus 7 支持 OpenGL ES 2.0,因此它不受规范规则的约束吗?是什么让 Nexus 7 如此与众不同?是什么阻止它支持 NPOT 纹理?我目前不知道有任何其他 OpenGL ES 2.0 设备有此限制(也许我错了)。
我我知道 Nexus 7 的纹理大小限制为 2048 x 2048,但仍不确定此 NPOT 限制。
如果有人能一劳永逸地为我解决这个问题,不胜感激。
【问题讨论】:
-
我想你已经回答了你自己的问题。如您所说,保证仅支持
GL_CLAMP_TO_EDGE作为 NPOT 纹理的包装模式。您链接的代码将包装模式设置为GL_REPEAT。 -
哎呀:-/谢谢@RetoKoradi,不知道我是怎么错过的-我只是看了下面的评论“令人惊讶的是,有些设备仍然不支持两种纹理的非功率”,并且只是假设海报使用 CLAMP_TO_EDGE 没有检查:-) 谢谢!
标签: android textures opengl-es-2.0 nexus-7