2

cocos2D は iOS のフレームワークの上に構築されているのだろうか、cocoa フレームワークを直接使用するよりも cocos2D は少し遅くなりませんか? (cocos2D は OpenGL ES の上にあり、これはさらに、Core Animation や Quartz を含む Cocoa Touch / iOS フレームワークの上にありますか?)

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

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

4

1 に答える 1

2

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

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

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

OpenGL が最速 cocos2D は少し遅いですが、これは作業を楽にするラッパーがいくつかあるためです。同じことを行う場合は、より速く取得できる可能性がありますが、柔軟性が犠牲になります。コア アニメーションが最も遅いです。

しかし、それらにはすべて用途があり、個々のニッチな分野で優れています.

于 2012-04-19T12:58:30.253 に答える