Vorteile der Verwendung von Core Graphics

7

Ich würde gerne wissen, welche Vorteile mir die Verwendung von Core Graphics anstelle von Open GL ES bringt. Meine Hauptfrage basiert darauf:

  • Erstellen von einfachen View-Animationen.
  • Erstellen Sie einige visuell ansprechende Objekte (Grafiken wie Core Plot zum Beispiel, Animierte Objekte, etc.).
  • Zeitaufwendig (sowohl lernen als auch umsetzen)
  • Einfache 2D Spiele
  • Komplexe 2D Spiele
  • 3D Spiele
  • Code-Pflegeanzeige auch sauberer Code.
  • Einfachere Integration mit anderen UI-Elementen.

Danke.

    
Peres 05.10.2011, 23:43
quelle

2 Antworten

21

Zuerst möchte ich hier ein wenig Terminologie klären. Wenn Leute über Core Graphics sprechen, beziehen sie sich im Allgemeinen auf die 2D-Zeichnung von Quartz, die eine 2D-vektorbasierte Zeichnungs-API ist. Es wird verwendet, um Vektorelemente entweder auf dem Bildschirm oder im Offscreen-Kontext wie PDFs zu zeichnen. Core Animation ist verantwortlich für Animation, Layout und einige begrenzte 3D-Effekte, die rechteckige Ebenen und UI-Elemente betreffen. OpenGL ES ist eine API der unteren Ebene, mit der die Grafikhardware von iOS-Geräten sowohl für das 2D- als auch für das 3D-Zeichnen angesprochen werden kann.

Sie fragen viel nach Ihrer Frage, und das Urteil darüber, was in jedem Szenario am besten ist, ist subjektiv und hängt vollständig vom Entwickler und seinen speziellen Bedürfnissen ab. Ich kann jedoch ein paar allgemeine Tipps geben.

Im Allgemeinen wird eine Empfehlung, die Sie in der Dokumentation von Apple und in Präsentationen von Ingenieuren finden, darin bestehen, dass Sie die beste Abstraktionsebene verwenden sollten, die Ihr spezielles Problem löst.

Wenn Sie nur eine 2-D-Benutzeroberfläche erstellen müssen, sollten Sie zunächst versuchen, dies mit den von Apple bereitgestellten UIKit-Elementen zu implementieren. Wenn sie nicht über die erforderlichen Funktionen verfügen, erstellen Sie benutzerdefinierte UIViews. Wenn Sie plattformübergreifenden Mac-iOS-Code entwerfen (wie im Core Plot-Framework), können Sie die Verwendung benutzerdefinierter Core Animation-CALayers verwenden. Jeder Schritt in diesem Prozess erfordert, dass Sie mehr Code schreiben, um mit den Dingen umzugehen, die die obige Ebene für Sie erledigt hat.

Mit Core Animation kannst du eine erstaunliche Menge an Sachen mit ziemlich guter Leistung machen. Dies beschränkt sich nicht nur auf 2-D-Animationen, sondern kann sich auch auf einige einfache 3-D-Arbeiten erstrecken.

OpenGL ES befindet sich unter der Zeichnung von allem, was Sie auf dem Bildschirm für ein iOS-Gerät sehen, obwohl Ihnen dies nicht zur Verfügung steht. Als solches bietet es die geringste Abstraktion für das Rendern auf dem Bildschirm und erfordert, dass Sie den meisten Code schreiben, um etwas zu erledigen. Es kann jedoch in Situationen erforderlich sein, in denen Sie die meiste Leistung aus einer 2D-Anzeige (z. B. in einem Action-Spiel) extrahieren oder echte 3D-Objekte und Umgebungen wiedergeben möchten.

Auch hier tendiere ich dazu, Leuten zu empfehlen, beim Schreiben einer Anwendung auf der höchsten Abstraktionsebene zu beginnen und nur dann nach unten zu gehen, wenn sie feststellen, dass sie etwas nicht tun können oder die Leistung nicht innerhalb der Spezifikation liegt. Weniger Codezeilen erleichtern das Schreiben, Debuggen und Warten von Anwendungen.

Allerdings gibt es einige nette Frameworks, die sich mit dem Abstrahieren von OpenGL ES beschäftigt haben, wie cocos2D und Unity 3D, die in vielen Situationen die Arbeit mit OpenGL ES erleichtern könnten. Für jeden Fall müssen Sie herausfinden, was für die speziellen Anforderungen Ihrer Anwendung sinnvoll ist.

    
Brad Larson 06.10.2011, 16:23
quelle
4

Im Grunde verwenden Sie OpenGL, wenn Sie ein Spiel machen. Ansonsten verwenden Sie CoreGraphics. Mit CoreGraphics können Sie einfache Dinge in Ihren normalen Benutzeroberflächencode integrieren.

Erstellen von einfachen View-Animationen - & gt; CG

Erstellen Sie einige visuell ansprechende Objekte (Grafiken wie Core Plot zum Beispiel, Animierte Objekte, etc.). - & gt; CG

Zeitaufwendig (sowohl lernen als auch implementieren) - & gt; OpenGL und CG sind beide auf den ersten Blick ziemlich hart.

Einfache 2D Spiele - & gt; OpenGL

Komplexe 2D Spiele - & gt; OpenGL

3D Spiele - & gt; OpenGL

Code Maintenance Ad auch sauberer Code. - & gt; Irrelevant

    
Andrew Johnson 05.10.2011 23:46
quelle