0

Android でのテクスチャ エンコーディングと pvr.ccz ファイルの読み込みについていくつか質問したいと思います。Cocos2dx ゲーム エンジンを使用しています。

  1. テクスチャ エンコーディング フォーマット PVRTCv2 および PVRTCv4 の pvr.ccz ファイルをロードできません。しかし、RGBA 8888、RGBA 4444 などでロードできます。cocos2dx ソースを確認しました。Android がこれら 2 つのエンコード形式でロードすることを許可しないだけです。Android でこれら 2 つのエンコード形式をロードするための回避策があるかどうかを知りたいです。

  2. pvr.ccz ファイルのエンコーディングを RGBA 8888 に変更しました。また、iOS と Android の両方でロードできます。ただし、問題は、pvr.ccz ファイルが約 2.4 MB を超えると、Android が再度ロードできないことです。メモリ使用量では、pvr.ccz ファイルのサイズが 16 MB を超えていることがわかります。おそらく、Android が pvr.ccz ファイルを解凍するためです。Android でのメモリの問題に対する回避策があるかどうかを知りたいです。

テストに Samsung Galaxy Tab P7500 を使用していますが、PowerVR GPU を使用していると想定しています。PVRTCv2 または PVRTCv4 で問題ないはずです。しかし、cocos2dx のソースでは、GPU に関するチェックは何も行われていません。Android が PVRTCv2 または PVRTCv4 をロードできないようにするだけです。私たちのゲームはあまりにも多くのグラフィックを使用しています。RGBA 8888 を使用している場合、ゲームのサイズは約 40 MB になりますが、PVRTCv2 を使用するとサイズはわずか 18 MB になります。

どんな提案でも感謝します!! .. ありがとう !

4

1 に答える 1

0

cocos2d のフォークを実行して、ニーズに合わせて調整することを検討しましたか?

より多くの Android デバイスをターゲットにしている場合は、最初に不透明なテクスチャのETC1圧縮を使用し、適切な圧縮を行い、apk を小さくします。android.opengl.ETC1Util名前空間で、圧縮されたイメージを 1 つだけロードするためのユーティリティ コードを確認します (圧縮ファイルから各ミップマップ レベルをロードする必要があります)。

不透明でないテクスチャの場合は、ベンダー固有の拡張機能を使用してください。これを確認してください: Android OpenGL テクスチャ圧縮

于 2013-05-20T05:15:28.897 に答える