2008-09-16 8 views
21

Was ist der schnellste Weg, auf OpenGL ES 1.x zu beschleunigen?Lernen OpenGL ES 1.x

Nehmen wir an, ich weiß nichts über OpenGL (das ist nicht ganz richtig, aber es ist eine Weile her, seit ich das letzte Mal OpenGL verwendet habe). Ich bin am meisten daran interessiert, dies für iPhone-bezogene Entwicklung zu lernen, aber ich bin interessiert zu lernen, wie es auch auf anderen Plattformen funktioniert.

Ich habe das Buch OpenGL ES 2.0 Programmierhandbuch gefunden, aber ich bin besorgt, dass es nicht der beste Ansatz sein könnte, weil es sich auf 2.0 statt 1.x konzentriert. Mein Verständnis ist, dass 2.0 nicht rückwärtskompatibel zu 1.x ist, daher kann ich einige wichtige Konzepte verpassen.

Hinweis: Für Antworten zu allgemeinen OpenGL Lernen finden https://stackoverflow.com/questions/62540/learning-opengl


Einige Ressourcen, die ich gefunden habe:

Antwort

5

Es gibt einige Dokumentation im iPhone SDK selbst.

Ansonsten nehmen Sie das, was Sie über OpenGL wissen (oder lernen Sie das mit anderen Mitteln), und vergessen Sie alle Dinge, die "alter cruft" sind (Anzeigelisten, Sofortmodus, Dinge, die in OpenGL sind, aber nicht direkt im Zusammenhang mit dem Zeichnen von Dreiecken). Verlernen Sie im Prinzip alles, was in OpenGL 3.0 als veraltet deklariert wurde.

GL ES 1.x ist für ziemlich einfache Geräte. Was Sie haben, ist eine Möglichkeit, Geometrie (Vertex-Puffer) zu zeichnen, Texturen zu verwalten und einen festen Funktionszustand (Beleuchtung, Texturkombinierer) einzurichten. Das ist so ziemlich alles.

+1

Unter "alten cruft" - GL_QUADS – bobobobo

1

Nachdem ich ziemlich viel Zeit mit der Entwicklung von 3D verbracht habe, wurde mir klar, dass es in den meisten Fällen am besten ist, anhand von Beispielen zu lernen und mit ihnen voranzukommen.

Beginnen Sie damit, sich selbst ein Ziel zu setzen (zum Beispiel - ein Partikel-System zu implementieren. Dazu gehören die Verwendung von Füllmethoden, Texturen, Vertexfarben, Batching und Transformationen), und beginnen Sie mit dem einfachsten Element - Zeichnen und rotieren ein Quad. Von dort gehen Sie weiter und fügen Sie Texturen hinzu, fügen Sie mehr Quadrate, etc ... hinzu. Während Sie das tun, würden Sie einige Informationen über die Syntax benötigen - das können Sie in vielen Büchern finden, aber die beste (sehr langweilige) Quelle ist das Spezifikationskomitee Veröffentlichung, die hier gefunden werden kann: http://www.khronos.org/opengles/spec/

Auch damit würden Sie viele Probleme stoßen, gut, sobald Sie ein Problem haben, gehen Sie zu Ihrem besten Freund in diesen Situationen: Demos und Beispiele!
Sie können viele Beispiele Quellen für das iPhone online und auf der Apple-Website finden, so laden Sie sie, kopieren Sie einfügen, was Sie brauchen, und ändern Sie dann auf Ihre Bedürfnisse.

Viel Spaß.

14

Wenn ich meine eigene Arbeit stecken kann ich Sie leiten würde zu mein Beitrag bei http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es. Es ist nicht die beste allgemeine Einführung in OpenGL ES, und es wird ziemlich schnell ziemlich technisch, aber es ist meine Sicht auf das Thema aus meiner Erfahrung Schreiben Molecules. Außerdem habe ich gerade angefangen, das Buch "Mobile 3D Graphics: with OpenGL ES and M3G" zu lesen.

Ich stimme dem Vorschlag zu, dass der beste Weg zu lernen ist, indem Sie tun. Ich wusste nichts über OpenGL und drei Wochen später hatte ich Moleküle im App Store zur Überprüfung. Sobald Sie eine klare Reihe von Zielen haben ("OK, ich muss eine 3D-Kugel zeichnen", "Jetzt muss ich sie bei Bedarf drehen"), wird es leicht, die Beispiele oder Teile der Dokumentation zu finden, die nur für die Aufgabe, an der Sie gerade arbeiten.

Es gibt viele Codebeispiele, von denen viele Instant-Modus und andere Aufrufe verwenden, die in OpenGL ES nicht unterstützt werden. Ich würde gerne auf die Liste hinzufügen, indem Sie die Quelle zu Molecules freigeben, aber Apples NDA hat das bis jetzt verhindert. Der Quellcode für Moleküle is now available.

Als ein Update (11/16/2010), ist Video für die Klasse, die ich auf OpenGL ES 1.1 unterrichtete, jetzt als Teil von my course on iTunes U zum Download verfügbar. Die Notizen für diese Sitzung finden Sie unter here. Ich werde demnächst die Videos im Herbstsemester mit einem für diese Woche auf OpenGL ES 2.0 aktualisierten.

In der Zwischenzeit hat Philip Rideout ein hervorragendes Buch über OpenGL ES 1.1 und 2.0 Entwicklung für das iPhone, genannt iPhone 3D Programming, veröffentlicht. Ich empfehle es sehr.

+0

Das ist cool man! Danke vielmals. – Thanks

+0

@Brad: Danke, dass du diesen Kurs bei iTunes U gepostet habe. Ich habe nach OpenGL-Ressourcen gesucht, und dieser Beitrag (besonders der Vortrag) hat mir sehr geholfen. – Linuxios

3

FYI, der Code von Brad Larsons Molecules ist jetzt verfügbar here.

1

Wenn Sie die iPhone SDK-Beispiele heruntergeladen haben, sehen Sie sich die EAGLview-Datei von crash landing an. Es ist eine ziemlich einfache Implementierung einer GLES-Ansicht, die in einem anderen Projekt ziemlich sauber importiert und verwendet werden kann. Es gibt eine andere Klasse in diesem Projekt namens Texture2d (wenn ich mich recht erinnere), die auch sehr interessant ist, wenn Sie GLES für 2D verwenden.

0

Darf ich auch Android vorschlagen - es ist einfach zu bekommen und Sie können einen funktionierenden Simulator wirklich schnell haben. Außerdem benutzt es v1.0, soweit ich weiß.
Es könnte mehr Tutorials geben, aber auch die von Google bereitgestellten APIDemos haben eine Einführung in OpenGL ES. Ich fand es sicherlich hilfreich.

2

Sie vielleicht einen Blick auf this ausgezeichnete Jef LaMarche Tutorial zu OpenGL ES auf dem iPhone zu nehmen.