在Android上符合OpenGL-ES 2.0的最小纹理尺寸是多少?

11

OpenGL-ES 2.0规范中是否存在特定硬件需要支持的最小纹理大小?例如,GL_MAX_TEXTURE_SIZE至少必须为1024或2048等值吗?

我想知道这个问题的原因是因为我正在开发一款使用着色器并且必须符合OpenGL-ES 2.0规范的应用。因此,我希望尽可能地使用大纹理,而不必考虑每个硬件的纹理限制(例如只有512x512的旧手机)。

如果存在最小值(或大多数设备支持的某些值),那将对我非常有帮助。

1个回答

14

是的,任何GLES2实现都必须支持至少宽高为64像素的纹理。 您可以使用GL_MAX_TEXTURE_SIZE枚举通过glGetIntegerv函数查询实际最大纹理尺寸。

请参阅官方规范第141页,表格6.20。


2
谢谢,我已经检查过了,在http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.24.pdf的第149页的表格6.17中发现确实写着至少64个像素。这对于我的需求来说只是可笑的少,我猜我只能坚持最小纹理为1024并希望足够好了。 - HardCoder
是的,那是相同的规格,但是旧版本。最新版本是2010年11月2日的2.0.25版。但是限制是一样的。 - Mārtiņš Možeiko
3
同意“HardCoder”的观点,这太荒谬了。您对此有任何想法吗?例如,在官方Android网站上,有一个漂亮的饼图显示当前使用的Android版本分布情况。是否有类似的纹理大小统计信息(和其他有用信息)? - Display Name
2
@sargeborsch OpenGL并不仅限于Android,因此虽然最小纹理尺寸对于我们的需求或Android设备的需求似乎荒谬,但这并不意味着OpenGL应该放弃一些设备支持来适应我们。 =) - Jamin Grey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接