2009-07-16 3 views
7

現在、私はコアアニメーションを非常に重く使用するユーザーインターフェイスを持っています。 OpenGL ESの学習に2ヶ月を費やす価値があるのだろうか?これは実際に2Dサーフェスの描画パフォーマンスを改善しますか? 3Dオブジェクトはありませんが、高度にアニメーション化された2Dのものはあります。時には3D歪み、多くの回転とスケーリングで。高度にアニメーション化されたユーザーインターフェイスに関しては、OpenGL ESのコアアニメーションやUIKitよりも優れたパフォーマンスがありますか?

特に、私はCAを使用して多くのスプライトでゲーム全体を作りました。パフォーマンスは大丈夫ですが完璧ではありません。

答えて

3

何をしているのか、どのデバイスをターゲットにしているかによって異なります。プログラマブルなグラフィックスパイプラインとiPhone 3GSの恩恵を受けることをしているのであれば、その機能はCoreAnimationで公開されていないので、いくつかの利点を見ることができるかもしれません。画像など)。 iPhone 3Gハードウェアにはプログラマブルなシェーダがありませんので、シェーダの効果をOpenGLに移行しても、古い携帯電話ではその効果は得られません。

あなたがやっているすべては、移動、回転、および2D表面をスケーリングされている場合は、CoreAnimationは

5
など、わずかに良いか悪いか、あなたのデータが層になっている方法に応じて、OpenGLのに非常に似た性能を与えるために起こっています

理論上、OpenGLはハードウェアに最も近いため、デバイス上で最も速いAPIでなければなりません。 OpenGLでは、あなたのパフォーマンスをかなり助けてくれる巧妙なトリックができます。スプライトをバッチで描画したり、ポイントスプライトを使うことができたり、テクスチャを圧縮したりすることができます

一方、ハードウェアに非常に近く、少なくともCore Animationと比較すると抽象化はあまりありません。あなたは、2の力以外のテクスチャ、投影、行列に対処しなければなりません。あなた自身でアニメーションコードを書く必要があります。あなたが間違って真面目にそれを良くするのではなく、多くの場所を殺すことができる場所がたくさんあります。

OpenGLについて私が気に入っているのは、クロスプラットフォームだということです。 OpenGLには多くのリソースがありますが、改善の余地はたくさんあります。あなたがゲームを書いて、OpenGLを学ぶ時間があれば、それをしてください。 OpenGLの基本をOOPデザインにまとめることはそれほど難しくはなく、最終的にはパフォーマンス向上のためのスペースを増やすことになります。始めるのに適した場所はCocos 2D engine for iPhoneです。


(免責事項:私はOpenGLとのCore Animationについてあまり何について少しだけを知っている私は、OpenGLを使用してiPhoneのための2つの2Dのゲームを書いた)

4

私はで人々の同じ質問をしました先月のWWDCで、答えは間違いなくはいでした。あなたが低レベルでOpenGLを使用する時間を取れば、2Dのパフォーマンスが向上します。

関連する問題