0

シーンの背景としてスプライトを使用するのに問題があります。背景を次のように設定しています。

Sprite bg = new Sprite(SCENE_WIDTH/2 , SCENE_HEIGHT/2, this.mParallaxBackRegion,getVertexBufferObjectManager());
bg.setCullingEnabled(true);
mScene.setBackground(new SpriteBackground(bg));

テクスチャの読み込み:

this.mParallaxBack = new AssetBitmapTexture(this.getTextureManager(), this.getAssets(), "gfx/_fixed.png", TextureOptions.BILINEAR);
this.mParallaxBackRegion = TextureRegionFactory.extractFromTexture(this.mParallaxBack);
this.mParallaxBack.load();

読み込んでいる png は、テスト目的で完全に黒の 960x640 画像 (シーン サイズと同じ) です。ただし、背景を設定すると、HTC Desire で fps が 60 (背景を使用していない場合) から 45 に低下します。背景を設定する方法を複数試しましたが、すべてが同じパフォーマンス ヒットを引き起こしているようです。これがパフォーマンスに劇的な影響を与えるのはなぜですか? これについて何かできることはありますか?

4

1 に答える 1

0

これほど大きなパフォーマンス ヒットが得られるのは奇妙です。しかし、ここで 1 つのことを試してみてください。この背景以外にも画面に描画されている可能性が高いと思われるので、同じテクスチャに背景を追加します。テクスチャが少ないほど、OpenGL は高速に動作します。openGL が別のテクスチャから描画する必要がある場合、その切り替えコンテキスト *(要出典) は低速な操作です。したがって、単一のテクスチャにすべてのスプライトを配置すると、GL 描画呼び出しがより効率的になります。これだけでは、パフォーマンスの問題を説明できない可能性があります。

また、アンチエイリアシング設定の可能性もあります: TextureOptions.BILINEAR. バイリニアは最高品質の設定です。DEFAULT または NEAREST_PREMULTIPLYALPHA を使用してみて、それが役に立たないかどうかを確認してください。

また、更新を無視するように背景を設定してください。

最後に 1 つの考え: HTC の欲求は、この日付 (2010 年にリリースされた) のかなり古い携帯電話です。パフォーマンスは、古いバージョンの Android を搭載した古い携帯電話であることが原因の 1 つです。ほぼ同じヴィンテージの HTC 信じられないほどでテストしますが、そのデバイスでの画像サイズは非常に控えめにする必要があります。andengine のネイティブ サイズを画面サイズの 1/2 にして、RationResolutionPolicy を使用して拡大できることをご存知ですか? 私は最初の andengine (GLES1) プロジェクトでそのアプローチを使用し、その世代のデバイスで大きな成功を収めました。https://play.google.com/store/apps/details?id=com.plonzogame&hl=ja

于 2013-08-30T20:48:16.647 に答える