2008-09-16 18 views
21

Jaki jest najszybszy sposób na przyspieszenie pracy z OpenGL ES 1.x?Nauka OpenGL ES 1.x

Załóżmy, że nie wiem nic o OpenGL (co nie jest do końca prawdziwe, ale minęło trochę czasu odkąd ostatnio korzystałem z OpenGL). Najbardziej interesuje mnie nauczenie się tego rozwoju iPhone'a, ale chciałbym się dowiedzieć, jak to działa na innych platformach.

Znalazłem książkę OpenGL ES 2.0 Podręcznik programowania, ale obawiam się, że może nie być najlepszym podejściem, ponieważ koncentruje się na 2.0 zamiast 1.x. Rozumiem, że 2.0 nie jest wstecznie kompatybilny z 1.x, więc mogę przegapić kilka ważnych pojęć.

Uwaga: W odpowiedzi na temat nauki ogólnych OpenGL, patrz https://stackoverflow.com/questions/62540/learning-opengl


Niektóre zasoby znalazłem:

Odpowiedz

5

Istnieje pewna dokumentacja w samym iPhone SDK.

Poza tym, po prostu weź wszystko, co wiesz o OpenGL (lub naucz się go w inny sposób), i zapomnij o wszystkim, co jest "starym cruft" (listy wyświetlania, tryb natychmiastowy, rzeczy, które są w OpenGL, ale nie są bezpośrednio związane z właśnie rysującymi trójkątami). Zasadniczo oducz wszystko, co zostało zadeklarowane jako przestarzałe w OpenGL 3.0.

GL ES 1.x jest dla całkiem prostych urządzeń. To, co masz, to sposób na narysowanie geometrii (bufory wierzchołków), zarządzanie teksturami i ustawienie pewnego stałego stanu funkcji (oświetlenie, kombinatory tekstur). To prawie wszystko.

+1

Wśród "starych cruft" - GL_QUADS – bobobobo

1

Po spędzeniu dość dużej ilości czasu na opracowywaniu 3D zdałem sobie sprawę, że w większości przypadków najlepszym sposobem jest nauczenie się na podstawie przykładów i posuwanie się z nimi naprzód.

Zacznij od postawienia sobie celu, do osiągnięcia (na przykład - wdrożenie systemu cząsteczek, w tym zastosowania trybów mieszania, tekstur, kolorów wierzchołków, grupowania i transformacji), a następnie rozpoczęcie i użycie najprostszego elementu - rysunku i obracanie quada. Stamtąd dalej dodawaj tekstury, dodawaj więcej quadów, itd ... W tym celu potrzebujesz trochę informacji o składni - można to znaleźć w wielu książkach, ale najlepszym (bardzo nudnym) źródłem jest komitet specyfikacji Publikacja znajduje się tutaj: http://www.khronos.org/opengles/spec/

Mimo to wpadłbyś na wiele problemów, no cóż, gdy pojawi się problem, udaj się do swojej najlepszej przyjaciółki w takich sytuacjach: dema i przykłady!
Możesz znaleźć wiele przykładów źródeł dla iPhone'a online i na stronie Apple, więc pobierz je, skopiuj i wklej, a następnie dostosuj do swoich potrzeb.

Baw się dobrze.

14

Jeśli mogę podłączyć własną pracę, będę kierować do mój wpis na http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es. To nie jest najlepsze ogólne wprowadzenie do OpenGL ES i dość szybko staje się technicznym, ale to moje podejście do tematu z mojego doświadczenia pisania Molecules. Zacząłem też czytać książkę "Mobile 3D Graphics: with OpenGL ES and M3G".

Zgadzam się z sugestią, że najlepszym sposobem na naukę jest działanie. Zacząłem nie wiedząc nic o OpenGL i trzy tygodnie później miałem Molecules do wglądu w App Store. Gdy masz jasny zestaw celów ("OK, muszę narysować sferę 3D", "Teraz muszę ją obrócić na żądanie") łatwo będzie znaleźć przykłady lub części dokumentacji, które odnoszą się tylko do zadanie, nad którym pracujesz.

Istnieje wiele przykładów kodu, chociaż wiele z nich korzysta z trybu natychmiastowego i innych połączeń, które nie są obsługiwane w OpenGL ES. Chciałbym dodać do listy, zwalniając źródło do Molecules, ale jak dotąd NDA firmy Apple zapobiegło temu. Kod źródłowy do Molecules is now available.

Jako aktualizację (11/16/2010), wideo dla klasy, której uczyłem na OpenGL ES 1.1, jest już dostępne do pobrania jako część my course on iTunes U. Notatki do tej sesji można znaleźć here. Wkrótce będę aktualizować filmy z semestru jesiennego jednym z nich na ten tydzień w klasie OpenGL ES 2.0.

W międzyczasie Philip Rideout opublikował doskonałą książkę na temat OpenGL ES 1.1 i 2.0 dla iPhone'a, pod nazwą iPhone 3D Programming. Gorąco polecam.

+0

To fajny człowiek! Wielkie dzięki. – Thanks

+0

@Brad: Dzięki za zamieszczenie tego kursu na iTunes U. Szukałem zasobów OpenGL, a ten post (szczególnie wykład) naprawdę pomógł. – Linuxios

3

FYI, kod molekuły Brad Larsons jest już dostępny here.

1

Jeśli pobrałeś przykłady iPhone SDK, przejrzyj plik EAGLview awarii lądowiska. Jest to dość prosta implementacja widoku GLES, który można importować i używać dość czysto w innym projekcie. Jest jeszcze jedna klasa w tym projekcie o nazwie Texture2d (jeśli sobie przypominam), która jest również interesująca, jeśli używasz GLES dla 2D.

0

Mogę również zaproponować system Android - jest łatwy do zdobycia i można bardzo szybko uruchomić działający symulator. Ponadto używa v1.0, o ile wiem.
Może być więcej samouczków, ale nawet APIDemos dostarczone przez Google ma wprowadzenie do OpenGL ES. Z pewnością mi pomógł.

2

może chcesz przyjrzeć this doskonałą Tutorial Jef Lamarche do OpenGL ES na iPhone.