2

cocos2DがiOSのフレームワークの上に構築されているのだろうか?cocos2DはCocoaフレームワークを直接使用するよりもわずかに遅くなりませんか? (Core AnimationやQuartzを含むCocoa Touch/iOSフレームワークの上にあるOpenGL ESの上にcocos2Dがありますか?)なぜOpenGL ESとcocos2DはCocoa Touch/iOSフレームワークよりも高速ですか?

しかし、実際には、Core Graphics、Core Animation、およびQuartzを使用するよりも、OpenGL ESが高速であると聞きましたか?

OpenGL ESが最速、cocos2Dが2番目、Core Animationが最も遅いですか? OpenGL ESの使用がCocoaフレームワークを直接使用するよりも速い理由を知っていますか?

答えて

2

cocos2DはOpenGLの上に構築されています。 cocos2Dでスプライトを作成するときは、実際には3Dモデルを作成してそれにテクスチャを適用しています。 3Dモデルは単なる平らな正方形で、カメラは常にそれを直視しているため、すべてが平面と2Dに見えます。しかし、これはスケーリングやスプライトの回転などの作業を簡単に行うことができる理由です。実際には2D正方形(実際には2つの三角形)を回転させたり、カメラから遠くまたは遠くに動かすだけです。しかし、Cocos2Dはそれをすべて処理します。

OpenGLは、最初から3Dグラフィックスを非常に迅速に出力するように設計されています。だから、それは周囲の押し点と三角形を扱うように設計されています。これは、3Dレンダリングハードウェアによって強化され、特にこのために使用できます。これがすべてであるので、オブジェクトを構築し、それらのオブジェクトにテクスチャをマッピングするポイント上のすべての数学を行うために非常に最適化することができます。 Cocoaがやっているタッチやその他のシステムの操作を心配する必要はありません。

Cocoa TouchはopenGlを使用していません。それはいくつかのハードウェアアクセラレーションを使用するかもしれませんが、2D用のボタンなどを作成するために設計されています。グラフィックス用に設計されたもの(OpenGL)ほど効率的ではありません。

OpenGLが最も高速です cocos2Dは若干遅くなっていますが、あなたの人生を楽にするラッパーがいくつかあるためです。あなたが同じことをするならば、あなたはそれをより速く得ることができるかもしれませんが、柔軟性のコストを伴います。 Core Animationが最も遅いです。

しかし、それらはすべて用途があり、個々のニッチな領域で優れています。

+2

ちょうどいくつかのものを追加したかっただけで、Cocoa TouchはOpenGLとハードウェアアクセラレーションに基づいています。ただし、ほとんど静的なビュー専用に作成され、最適化されています。これはバッテリの寿命に非常に役立ちますが、ほとんどの電力最適化ではダイナミックビューでは非常に遅くなります。 –

+0

だから、OpenGL ESはCocoa Touchの上にないのですか?すべてのフレームワークは実際にトップiOSにありますか?もしそうなら、iOSのどの層がOpenGL ESですか?それとも実際に何か「見ている」メカニズムを使ってiOSを通過し、3Dハードウェアで直接作業するのですか? –

+0

@RTS私はCocoa TouchがOpenGLの上にあることに気づいていませんでした。私はそれが何らかのハードウェアアクセラレーションを持っていると思った。 OpenGLでCocoa Touchの詳細へのリンクはありますか? –

関連する問題