【问题标题】:Reasonable texture sizes in androidandroid中合理的纹理大小
【发布时间】:2011-08-11 19:32:40
【问题描述】:

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

基本上,我想知道在不比原始 droid 更早的 android 手机中加载纹理数据需要多少空间,至少在整个过程不会大幅减慢。

【问题讨论】:

  • 糟糕,是的,我的意思是 2048 年,感谢您接听。

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


【解决方案1】:

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

加载多个纹理应该可以正常工作,尤其是每个纹理不超过 2 MB 时。但是您当然会受到可用内存大小的限制。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多