Android在onDrawFrame中调用GLUtils.texImage2D非常慢

时间:2010-09-23 19:49:32

标签: android opengl-es

我们正在构建一个可滚动的背景,目前有一个大的背景图像,我们分成512x512个图块,并且想要在onDrawFrame中调用GLUtils.texImage2D时根据需要加载这些图块,而不是一次性加载我们认为由于必须将纹理加载到硬件上,我们有明显的延迟,有没有更好的方法来做到这一点?

感谢。

2 个答案:

答案 0 :(得分:1)

使用texSubImage2D()重新加载现有纹理对象,而不是创建全新的纹理对象。

答案 1 :(得分:0)

G'day哥们, 我认为您在帧时间内尝试传输的大量图像数据有点多:如果您使用的是24bpp格式,则512x512相当于1 MB的数据。我可以想到两种方法来最小化它:

  • 更改为bpp较少的位图格式。如果您使用的是ARGB8888,您可能需要尝试切换到RGB565(因为它是背景)以将数据减半。
  • 考虑将512x512分成例如4块512x128(因为你是垂直滚动)。这样就可以在更多的帧间隔内分配加载。

干杯,阿尔特。