5

openglとcocos2dポート(http://code.google.com/p/cocos2d-android-1)を使用してAndroidゲームを作成しています。私は幅広いデバイスをターゲットにしており、それがうまく機能することを確認したいと思います。私はネクサスのものだけでテストし、より遅いデバイスでの経験を持つ人々からいくつかの入力を得ることを望んでいます。

現在、ゲームは2つの1024x1024テクスチャと2つの256x256テクスチャを使用しています。これはほとんどのデバイスの制限内ですか?これらの場合、経験則やグラフィックメモリ制限の経験がある人はいますか?gfxメモリを超えた場合、通常のメモリにページングされますか?

4

3 に答える 3

11

Javaアプリは16Mo(mdpi)または24Mo(hdpi)です。ただし、ネイティブはそうではなく、OpenGLJavaAPIはJNIラッパーにすぎません。したがって、24Moを超えるテクスチャをGPUにロードできます。私の経験では、最初はアトラスを512 * 512に制限していましたが(G1は大きなテクスチャでは遅いため)、今日はより大きなアトラステクスチャを使用しています。

現在のゲームでは、20〜50 MoのRAMを使用し、2048*2048のテクスチャを使用しています。

于 2010-12-28T05:55:59.160 に答える
1

私が知っている古い投稿ですが、最近では、Android Javaを使用してメモリ内のビットマップで利用可能なロードスペースのために、VMで少なくとも128MBを話します。

テクスチャを使用すると、アプリスペースの外にロードします(c)。したがって、ロード制限は電話のメモリと同じです。(メモリを大量に消費するゲームでは、ホーム画面に戻るときにアイコンが描画されることに気付くでしょう)

于 2015-01-07T03:14:27.710 に答える
0

Afaikテクスチャのメモリ制限は、アプリのメモリ制限と同じです。これは、アクセス可能なすべての利用可能な電話メモリである可能性がありますが、ほとんどの状況で16メガです。

問題が発生する前に、これよりもはるかに多くのテクスチャをアプリにロードしました。少なくとも1つの2048x2048テクスチャといくつかの512x512テクスチャがあり、すべてメモリに8888があります。

テクスチャバインディングでoomエラーが発生したことはなく、ビットマップのロードでのみ発生したことがあるので、それがお役に立てば幸いです。

于 2010-12-21T01:56:55.097 に答える