2

Open GL ES 2.0 を使用して Android アプリを作成しています。Open GL でのメモリ管理について混乱しています。

私の質問は次のとおりです。

  • Open GL ハードウェアで使用できるメモリの量は? 明らかに、それはデバイスごとに異なります。
  • 使用中のメモリ量と残りのメモリ量を確認するにはどうすればよいですか?
  • メモリ制限を超えるとどうなりますか?
  • 現在表示されていないデータをアンロードするには、どのような手法を使用すればよいですか?

現在 LRU ベースで使用されていないテクスチャをアンロードするために何らかのシステムを実装する必要があると思いますが、これに使用する基準について考えてみたいと思います。アプリはある時点で静かに終了します。これは、グラフィックス メモリの使用量が多すぎるためだと思われます。

現在、テクスチャをアンロードすることはなく、かなりの数をロードできるようです。Nexus 7 でテストしたところ、134 個の 1024x1024 RGBA テクスチャをロードできました。これは、計算すると 500 MB を超えます。テクスチャがグラフィックス メモリにロードされると、使用するスペースが少なくなると思いますが、それでもまだ多くの領域があり、明らかにそれを管理する必要がありますが、開始方法についていくつかのヒントが必要です。

4

1 に答える 1

0

gles glDeleteTexturesを使用するだけです

メモリが不足すると、おそらく GL_OUT_OF_MEMORY エラーが発生します。もう 1 つのことは、Android のメモリ使用量を監視することです。

Androidメモリ: Androidでアプリケーションのメモリ使用量を見つけるにはどうすればよいですか?

ここでopenglに関する興味深い質問を参照してください:openglでテクスチャを使用してメモリを管理する方法は?

于 2013-08-23T13:12:45.340 に答える