安卓中合理的纹理尺寸

4
我正在开发一个在安卓上使用opengl的应用程序,并希望能够在任何至少支持OpenGL ES 2.0的手机上运行,包括原始的droid。目前,我正在使用2048x2048的ETC1纹理压缩。在我测试的Droid X上它运行良好,但我目前没有原始的droid进行测试,也找不到太多关于这个话题的数据。我知道G1不能很好地处理大于512x512的纹理,而droid似乎可以处理大小为1024x1024的图像,但是2048x2048呢?(同样,etc1压缩,因此它大约有2 MB)。另外,由于ETC1不支持alpha通道,我想加载另一个ETC1纹理来支持alpha通道。这是一个空想吗?
基本上,我想知道在任何早于原始droid的安卓手机上加载纹理数据的可用空间有多少,至少不会使整个应用程序明显变慢。

哎呀,是的,我想说的是2048,谢谢你指出来。 - Leif Andersen
1个回答

4
你可以查询 MAX_TEXTURE_SIZE 来获取最大纹理大小,或者在 http://glbenchmark.com 上查找你的手机(你可以在这里找到 Droid 的信息)。据我所知,G1 不支持 GLES 2.0。
加载几个纹理肯定可行,特别是当它们每个都不超过2MB时。但你当然会受到可用内存大小的限制。
此外,为了达到最佳性能,你应该对纹理进行mipmap处理。由于你正在使用 ETC,因此必须离线完成此操作。
有关如何使用带 Alpha 的 ETC1 的指南,请参见这里

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