0

現在、SDK GLES10 を使用して Android ゲームを開発していますが、Samsung 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()です。全体の CPU 時間の 85% が Ace で使用され、82% が S2 で使用されます。

1. レンダリングに NDK を使用し、2. GLES20 に移植すると、パフォーマンスが大幅に向上しますか?

4

1 に答える 1

1

それはおそらく、あなたがすでに何をしているかに依存します。

特定のボトルネックを見つけることを検討します。「レンダリング」がボトルネックであると言うのは、漠然としていて役に立ちません。

あなたを妨げているものは何ですか?

  • SwapBuffers 呼び出し時間?
  • OpenGL の状態変更が多すぎますか?
  • GPU頂点バウンド?
  • GPU フィルレート バウンド?

これに対する答えによっては、GPU が制限要因であるかどうかに応じて、NDK を使用すると役立つ場合もあれば、まったく役に立たない場合もあります。

NDK は少ないオーバーヘッドで GPU を呼び出すのに役立つかもしれませんが、それが実際に妨げになっているのかどうかはわかりません。

DDMS トレースビューをまだ使用していない場合は使用してみて、ほとんどの時間がどこに費やされているかを確認してください。そうすれば、大幅な書き換えの問題を経験する前に、十分な情報に基づいた決定を下すことができます。

于 2012-04-22T18:40:05.640 に答える