私はiPhone用の2Dスクロールゲームに取り組んでいます。たとえば 480×6000 ピクセルの大きな画像の背景がありますが、一部しか表示されません (ちょうど 1 画面分、480×320 ピクセル)。このような背景を画面に表示する最良の方法は何ですか?
現在、背景を複数のテクスチャに分割し (最大テクスチャ サイズの制限を回避するため)、各フレームの背景全体をテクスチャ付きの三角形のストリップとして描画します。スクロールは、モデル ビュー マトリックスを変換することによって行われます。シザー ボックスのウィンドウ サイズは 480×320 ピクセルに設定されています。これは高速であることを意図したものではありません。最適化を行う前に、動作するコードが欲しかっただけです。
おそらく OpenGL の実装は、背景の見えない部分を破棄するのに十分スマートであると考えていましたが、私が書いたいくつかの測定コードによると、背景の描画には平均で 7 ミリ秒、最大で 84 ミリ秒かかるようです。(これはシミュレーターで測定されます。) これは、レンダリング ループ全体の約半分です。私にとってはかなり遅いです。
背景の描画は、VRAM のある部分から別の部分に 480 x 320 ピクセルをコピーするのと同じくらい簡単です。つまり、非常に高速です。そのようなパフォーマンスに近づくための最良の方法は何ですか?