基本的なコア グラフィック関数を使用するアプリケーションを作成しています。アプリケーションは Ipad2 で十分に動作しますが、Ipad3 では Retina ディスプレイが原因でパフォーマンスが低下し、以前の 4 倍のピクセル数で描画が行われます。パフォーマンスを改善するためにいくつかのハックを試みましたが、コード内のジェスチャで描画が行われるため、他の代替手段に切り替える必要があると思います。GPU 処理機能を使用できるように、Core Graphics を使用して実行できるすべての機能を Core Image が提供しているかどうかを尋ねたかったのです。そうでない場合、同じ機能をより優れた処理能力で使用できるようにするための最良の代替手段は何ですか?
2 に答える
Core Image と Core Graphics は大きく異なります。Core Image は画像処理技術です。セピア、白黒、色反転などの既製のフィルターを適用するか、カスタム フィルターを作成することができます。Core Graphics は、複雑な描画を可能にする Quartz 2D テクノロジを利用したレンダリング API です。
Brad Larson の GPUImage は、Core Image の優れた代替/追加です。ここで見つけることができます。
パフォーマンスを向上させたい場合は、OpenGL などの低レベル API を試すことができます。習得するのは難しいですが、開始するためのリンクがいくつかあります。
- iPhone OpenGL ES – 学習のための 8 つの優れたリソース- ManiacDev から、一目瞭然
- iOS 用 OpenGL ES プログラミング ガイド- Apple 独自のドキュメント、完全な、良いスタート
- iOS ベースの OpenGL ES プログラミング- 開始するためのその他のリソース
- OpenGL ES 2.0 for iPhone チュートリアル - Good Ray Wenderlich の紹介
- Pro OpenGL ES for iOS - 優れた Apress 本ですが、初心者向けではありません
1 年遅れましたが、コア アニメーションの WWDC 2010 セッション: 424 と 425 をご覧ください。どちらも重要ですが、11:00 マーク頃に 425 のパフォーマンス チューニングに関する優れた詳細がいくつかあります。
簡単に説明すると、3 つの潜在的なボトルネックがあり、スムーズな 60 FPS が得られるまで特定、最適化、および反復を続ける必要があるということです。潜在的なボトルネックは次のとおりです。
- 読み取り帯域幅
- 書き込み帯域幅
- 処理/レンダリング パス。
425 セッション (Core Animation in Practice、パート 2) では、上記に対処するためのテクニックについて説明します。