OpenGL ES を使用して iPhone 用の 2D ゲームを開発しています。永続的な背景として 320x480 のビットマップ イメージを使用したいと考えています。
私が最初に考えたのは、320x480 のクワッドを作成し、その上に背景を表すテクスチャをマップすることでした。それで... 320x480 の画像を含む 512x512 のテクスチャを作成しました。次に、それを 320x480 クワッドにマッピングしました。
この背景をフレームごとに描画し、その上にアニメーションのスプライトを描画します。これらすべてのオブジェクト (背景 + スプライト) の描画が遅すぎることを除けば、これは問題なく機能します。
いくつかのテストを行ったところ、速度低下がピクセル パイプラインにあることがわかりました。当然のことながら、大きな背景画像が主な原因です。これを証明するために、背景の描画を削除し、他のすべてのレンダリングが非常に高速になりました。
バックグラウンドを維持し、パフォーマンスを向上させる方法についてアドバイスを求めています。
詳細は次のとおりです。
1) 私は現在、シミュレーターでテストしています (Apple からライセンスを待っています)。
2) 背景は 128k に圧縮された PVR テクスチャです。
3) この背景をカラー バッファにキャッシュする方法があるのではないかと期待していましたが、うまくいきませんでした。それは私の OpenGL ES の経験不足によるものかもしれませんし、うまくいかないばかげた考えかもしれません :)
4) 背景全体を常に更新する必要はなく、移動するスプライトによって描画された部分だけを更新する必要があることに気付きました。背景の一部を(必要に応じて)別のテクスチャとして、またはシザー ボックスを使用して更新する手法を調べ始めましたが、これはエレガントとは言えません。
ヒント/アドバイスをいただければ幸いです...
ありがとうございました。