0

私のアプリでは、多くの UIView アニメーション (アニメーション png) を使用しています。このすべての UIView 画像アニメーションを CPU での処理から GPU に移行するためのシンプルでエレガントなソリューションはありますか? 価値がある?

4

1 に答える 1

0

アニメーション化された PNG シーケンスは GPU によって既に描画されています (実際の画像の読み込みと OpenGL テクスチャへの変換は CPU によって行われますが、画像の描画は GPU によって行われます)。

パフォーマンスの問題がある場合、ボトルネックはおそらく画像の読み込みまたは解凍にあります。その場合、それらを単一のスプライトシートに結合してから、画像を view.layer として割り当ててアニメーション化するなど、いくつかのオプションがあります。 .contents と view.layer.contentsRect を移動して、CAKeyframeAnimation を使用して各フレームを順番に選択します。

または、その UIImageView API をミラーリングする UIView サブクラスを使用して PVRTC 画像シーケンスをリアルタイムでロードおよび再生できるライブラリを作成しましたが、OpenGL を使用してすべての描画を行います。これは、PNG を使用するよりもはるかに CPU とメモリに優しく、パフォーマンスの問題を解決する可能性があります (実際に問題があると仮定します)。

確認してください: https://github.com/nicklockwood/GLView

(サンプル フォルダーに含まれる大きな PVR 画像シーケンスをスムーズに再生する例と、PNG 画像を PVR にバッチ変換するための手順があります)。

于 2013-05-13T09:41:44.943 に答える