android中合理的纹理大小

时间:2011-08-11 19:32:41

标签: android opengl-es textures opengl-es-2.0

我正在尝试开发一个在Android上使用opengl的应用程序,理想情况下它可以在任何手机上运行,​​就像原来的droid一样(或者至少任何支持OpenGL ES 2.0的手机)。目前,我正在使用2048x2048 ETC1纹理压缩。它在Droid X上运行正常我正在测试它,但我目前没有原始的机器人来测试它,我也找不到关于这个主题的大量数据。我知道G1对于大于512x512的纹理效果并不好,并且机器人似乎可以处理大到1024x1024的图像,但是2048x2048呢? (再次,etc1压缩,所以它大约2 MB)。此外,因为ETC1不支持alpha,我想加载另一个ETC1纹理以支持alpha通道。这是个梦想吗?

基本上,我想知道在Android手机中加载纹理数据的空间有多大,而不是原来的机器人,至少没有大幅减速。

1 个答案:

答案 0 :(得分:4)

您可以查询MAX_TEXTURE_SIZE以获得最大纹理大小,或者您可以在http://glbenchmark.com上查找手机(您可以找到Droid信息here)。 G1不支持GLES 2.0,AFAIK。

加载几个纹理应该确定有效,特别是当它们每个不超过2 MB时。但是你当然会受到可用内存大小的限制。

此外,要获得最佳性能,您应该对纹理进行mipmap。由于您使用的是ETC,因此必须离线完成。

有关如何将ETC1与alpha一起使用的指南,请参阅here

相关问题