0

我目前正在使用 SDK GLES10 开发一款 Android 游戏,但在三星 Galaxy Ace 等不太好的手机上遇到了一些性能问题。所以我考虑过将它移植到 NDK,也许也让它使用 GLES20,至少是消耗最多 CPU 时间的渲染部分。

(在 Galaxy S2 上,它以恒定的 61 FPS 运行,在 Galaxy Ace 上,它在 90 到 20 FPS 之间变化,并且大部分时间都卡顿)

Galaxy S2 和 Galaxy Ace 上的大多数 CPU 时间消耗方法都是GLES10.glDrawElements(),GLES10.glVertexPointer()GLES10.TexCoordPointer(). 比如在 Ace 上使用了 85% 的总 CPU 时间,在 S2 上使用了 82%。

1. 使用 NDK 进行渲染和 2. 将其移植到 GLES20 会大大提高性能吗?

4

1 回答 1

1

这真的可能只取决于你已经在做什么。

我会寻找特定的瓶颈。说“渲染”是一个瓶颈太模糊了,没有用。

究竟是什么阻碍了你?

  • SwapBuffers 调用时间?
  • OpenGL状态变化太多?
  • GPU顶点绑定?
  • GPU填充率限制?

根据对此的答案,使用 NDK 可能会有所帮助,也可能根本没有帮助,具体取决于您的 GPU 是否是限制因素。

NDK 可能会帮助您以更少的开销获得对 GPU 的调用,但您不知道这是否是真正阻碍您的原因。

如果您还没有尝试使用 DDMS 跟踪视图,并查看您的大部分时间都在哪里,那么您可以在经历重大重写的麻烦之前做出明智的决定。

于 2012-04-22T18:40:05.640 回答