在android opengl ES中优化纹理

时间:2011-06-23 08:05:19

标签: android opengl-es

我正在创建一个Android应用程序,需要随时从1000 +图像的数据库中显示10-20张图片。我目前正在将这些图片显示为opengl中的简单纹理。多次调用bindTexture()会减慢当前应用程序的速度,因为显示的10-20张图片几乎不断交换。

我已尝试使用纹理图集进行优化,但这并没有太大帮助,因为纹理图集也必须不断重新加载。我还不想采用缩小图像的方式。有没有可以优化纹理的方法?

1 个答案:

答案 0 :(得分:1)

我有以下建议:

  • 如果您还没有这样做,只能使用glTexSubImage2d更新地图集的各个部分。
  • 使用RGB565数据(或者RGBA4444?),这是RGBA8888的一半。

如果仍然太慢:

  • 每帧限制您在地图册中更新的数据量;例如。仅更新当前未显示的图像的1/4。即需要4帧来更新图像,在第4帧中,将纹理坐标切换到这个新图像以显示它。

希望有所帮助,

欢呼,Aert。