2017-01-01 7 views
0

私はcocos2dxを使用して古いゲームを復活させようとしています。 私がやったことは、古いバイナリファイルを読み込んでビットマップファイルを抽出することでした。そこには合計68kビットマップファイルがあります。 これで、すでにファイルを読み込んだ後、バイトを解凍し、ビットマップをRGB8からRGBA8888に変換してビットマップをテクスチャとして生成し、スプライトを作成しました。 しかし、それはアイソメのゲームなので、地図があり、多くのタイルで構成されています。したがって、異なるテクスチャ(個々のテクスチャとしての各ビットマップ)を使用してマップを描画すると、多くのglcallsが発生します。私が行ったことは、テクスチャを再利用してローカルのzorderでそれらをグループ化して、自動バッチ処理を利用しようとしていることです。cocos2dxでビットマップテクスチャレンダリングのパフォーマンスを向上させる方法

キャラクターのアニメーションでは、127個の個別のビットマップテクスチャを作成し、スプライトフレームを1つずつ作成しようとしました。

はGLドローコールが800から50に減らすしかし、FPSが、まだ遅すぎるunluckyly作品のすべての後(10〜20に低下し、それは60でなければなりません)

テストは、iPhone上で実行されていますシミュレータ、GPUはありませんが、これはまだ普通のFPSですか(ほぼ13k gl vertsあり)

FPSは私のキャラクターアニメーションのテクスチャの数によって影響を受けますか?

実行時にテクスチャをパックする必要がありますか?例えばテクスチャを結合して、実行時にメモリ内のより大きなテクスチャを作成し、それらをオフセットでロードします。

+0

glコールはどういう意味ですか?何がFPSに影響を与えたのですか?フレームごとにglTexImage2D()を呼び出しますか? – Sung

+0

これはcocos2dxのデバッグメッセージですので、私はgl描画呼び出しでなければなりません。そして、fpsはgl描画呼び出しかどうかに関係がありますか?そして私は実際にopenglコールを直接使用していませんでした。私はcocos2dxエンジンにそのすべてを残しました。ですから、私はcocos2dxを使用する代わりにOpenGLルーチンに入るべきだとお勧めしますか? –

+0

実際にあなたのボトルネックは何かを知っていますか? 50ドローコールと13K vertsは何もないので、実際にあなたの問題はOpenGL層のようには聞こえません。アプリケーションのプロファイリングを試しましたか?どのデバイスのGPUを使用していますか? – solidpixel

答えて

1

シミュレータのパフォーマンスを調べないでください。それは完全に無関係で非代表的です。

現在のiOSデバイスでは、50個の描画コールと13kバーチャルが問題ありません(デバイス上で実行することによってのみわかる)場合は、60fpsで実行されます。

関連する問題