2012-01-05 15 views
5

現在OpenGLゲームで作業していますが、最近はiPadに加えてiPhoneをサポートするためにリファクタリングを開始しました。できるだけ小さな仕事をするために、EAGLViewを480×360(iPadアスペクト比を維持するため)にリサイズし、ビューを上にシフトしてyの原点が-20になるようにしました、エッジが切り取られる可能性があるため)。UIViewが部分的にオフスクリーンのときのOpenGL ESのパフォーマンスの問題

これは、(59-61fpsに等しいフレーム持続時間を報告しているCADisplayリンクにもかかわらず)デバイス上でぎくしゃくしたパフォーマンスをもたらし、iPadバージョンと並んで比較すると少なくとも20%遅くなりました。

次に、画面サイズを480 x 320に変更しようとしましたが、レンダリングされたコンテンツには正しいアスペクト比がなくても、パフォーマンスは通常に戻りました。

「スクリーンを外して」レンダリングするとパフォーマンスが低下し、なぜディスプレイリンクが60fpsで動作していると思われるのはなぜですか?

アイデア? ありがとう

答えて

0

これはほとんどが野生の推測ですが、クリッピング領域はどうですか?このハードウェア機能によって、ウィンドウとハードウェアアクセラレーションされたグラフィックを混在させることができました。おそらく、モバイルデバイスではうまく実装されていない可能性があります。

ただし、UIViewをオフスクリーンにすることを避け、glViewport()を使用してビューの一部を画面外にシフトすることができます。それは同じように見えますが、パイプラインの別の部分(ラスタライザ)によって処理され、はるかに高速になるはずです。

+0

返信いただきありがとうございました。あなたが言ったようにビューポートを調整したところ、今は夢のように走っています – Weaverfish

+0

聞いてうれしいです... –

関連する問題