1

私たちの Android ゲームには、Galaxy S2 に固有のように見える問題があります。

レンダリングが途切れることがあります。つまり、基本的に最後の 2 つのフレームをレンダリングしているように見えます (更新せずに最後の 2 つのレンダー バッファーを交換するかのように)。

これについて本当に奇妙なのは、ゲームが更新され続けることです。つまり、スタッターが 2 秒間続くと、ゲームは舞台裏で 2 秒間進行したことになります。

コードは基本的に次のようになっているため、これは奇妙です。

function Update()
    DoGameLogic()
    DoRender()

これは、ゲームが更新された場合、ゲームもレンダリングされたことを意味します。最大デルタ時間は 1 フレームに制限されているため、スタッター中に複数の更新と複数のレンダリングがあったはずです。

私の現在の理論では、ほとんどのデバイスではレンダリング中にゲームが遅れますが、S2 ではレンダリング呼び出しは実行されますが、レンダリング バッファーを更新せずに「失敗」します。

誰かがこの問題に遭遇しましたか? これが何であるかについての提案を本当に感謝します。

4

1 に答える 1

0

問題が何であるかがわかりました。

Galaxy S 2 は、何らかの理由で GL メモリが不足していました。これは、テストしたデバイスでは明らかではありませんでしたが、他のデバイスでは、問題のある呼び出しではなく、Open GL 呼び出しでクラッシュすることがありました。

最終的には、ポイント スプライト VBO を使用するようになりました。S 2 は強力なデバイスであるため、回避策として Point スプライトを Quad の模倣ポイント スプライトに置き換えました。

ちなみに、SoundPool もこのデバイスでメモリ不足になるため、別の回避策が必要です。

于 2011-12-23T03:38:11.427 に答える