Cóż, oto moja prośba. Nie znam jeszcze OpenGL i nie chcę się go uczyć, chcę się uczyć OpenGL ES bezpośrednio, ponieważ jednak moje programowanie jest przeznaczone dla Androida. Chcę się uczyć OpenGL ES, aby tworzyć moje gry 2D . Wybrałem go ze względu na wydajność (ponieważ podstawowy rysunek SurfaceView nie jest tak wydajny, jeśli chodzi o gry RT). Moje pytanie brzmi: od czego zacząć? Spędziłem ponad miesiąc przeglądając Google i czytając / próbując kilku samouczków / przykładów, które znalazłem gdziekolwiek, ale szczerze mówiąc, niewiele to pomogło, a dzieje się tak z dwóch powodów:
- Prawie wszystkie artykuły / samouczki, z którymi się spotkałem, są związane z 3D (chcę się tylko nauczyć, jak rysować moje sprite'y 2D)
- Nie ma żadnej podstawy, od której można by zacząć, ponieważ wszystkie artykuły dotyczą konkretnych rzeczy, takich jak: „Jak narysować trójkąt (z wierzchołkami)”, „Jak utworzyć siatkę” ... itd.
Próbowałem też przeczytać kod źródłowy (np. Wyspa repliki), ale kody są zbyt skomplikowane i zawierają wiele rzeczy, które nie są potrzebne; wynik: gubię się wśród 100 plików .java z dziwnymi nazwami klas i innymi rzeczami.
Wydaje mi się, że nie ma takiego kursu jak ten, którego szukam, ale byłbym bardzo zadowolony, gdyby ktoś dał mi kilka wskazówek i może kilka linków, aby dowiedzieć się, co robię (tylko renderowanie duszków 2D OpenGL ES! Nic 3D ).
and I'm not willing to learn it
To nie jest dobry sposób na rozpoczęcie tutaj pytaniaOdpowiedzi:
Byłem w podobnej sytuacji.
Sposób, w jaki zacząłem z openGL od początku, od spojrzenia na bardzo podstawowe przykłady / dema GLSurfaceView.
Zacznij od skonfigurowania aktywności w aplikacji i podstawowej kanwy.
Zdobądź łup w pliku kodu źródłowego wyspy repliki: GameRenderer.java, aby dowiedzieć się, jak skonfigurować płótno z odpowiednimi flagami GL do renderowania 2D (sprite). Naprawdę powinieneś rzucić okiem na SpriteMethodTest tego samego autora repliki wyspy: http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest
Zobacz to pytanie, w którym opublikowałem własny kod: Używanie OpenGL do zastąpienia Canvas - Android
Po skonfigurowaniu płótna zacznij od wywołania czegoś takiego: gl.glClear (GL10.GL_COLOR_BUFFER_BIT);
Następnie jesteś gotowy do renderowania duszka. Najpierw musisz załadować sprite'a do tekstury: http://qdevarena.blogspot.com/2009/02/how-to-load-texture-in-android-opengl.html
Jednak jest to samouczek, który naprawdę pomógł mi w ładowaniu sprite'ów: http://tkcodesharing.blogspot.com/2008/05/working-with-textures-in-androids.html
Oto jak to robię, mam klasę o nazwie Texture.java:
Następnie w mojej metodzie onDrawFrame () po prostu robię:
To powinno sprawić, że zaczniesz rysować sprite'y 2D na płótnie openGL. Zauważyłem, że nie ma na ten temat prostego samouczka. Mam nadzieję, że w przyszłości opublikuję jeden na swoim blogu deweloperów: http://developingthedream.blogspot.com/
źródło
Programowanie 2D to po prostu programowanie 3D, które jest ograniczone do płaszczyzny. Nie będziesz miał innego wyboru, jak nauczyć się 3D, ale kiedy go używasz, po prostu ustaw z = 0.
Istnieje oficjalna książka o OpenGL ES. To może dać ci wprowadzenie, którego szukasz: http://www.amazon.com/OpenGL-ES-2-0-Programming-Guide/dp/0321502795/
źródło
Na pewno kupiłbym Androida - wykład Chrisa Pruetta Google IO Pisanie gier czasu rzeczywistego na Androida
pobierz również plik PDF
jest bardzo pomocny na wielu poziomach, Chris ma naprawdę duże doświadczenie w tworzeniu gier na urządzenia mobilne
ale jeśli naprawdę koncentrujesz się na 2D, zacznij od Canvas http://developer.android.com/guide/topics/graphics/index.html#drawing-with-canvas
Inną opcją zależną od poziomu umiejętności jest Flash + AdobeAIR na Androida, ja sam lubię i lubię poziom programowania, a gdy będziesz dalej rozwijać się, dowiesz się dlaczego.
OpenGL: Sprawdź - Nehe Productions
kilka aplikacji, które możesz chcieć zainstalować na swoim telefonie, które są tego warte i są darmowe to: OpenGL Demo, min3d Framework, RedBook Sample
źródło
Możesz zobaczyć projekt : https://github.com/ChillingVan/android-openGL-canvas/blob/master/README-en.md Implementuje płótno z OpenGL. To jest czysta Java. Implementuje części tego, co może zrobić normalne płótno.
źródło
Widzę, że podano już wiele dobrych informacji. Chciałem udostępnić witrynę, która pomogła szybko przyspieszyć działanie OpenGLE! Zajęło to tylko kilka miesięcy i miał niestandardowy układ współrzędnych oparty na układzie współrzędnych kartezjańskich. Udało mi się renderować obiekt 3D bez kamery przy użyciu technik rozszerzonej rzeczywistości.
Zacząłem od samego doświadczenia w programowaniu, bez doświadczenia w OpenGL. Skorzystałem ze strony z samouczkami Raya Wenderlicha. Podane tam informacje są na najwyższym poziomie i łatwe do zrozumienia. Przekracza większość zbędnych informacji i podaje to, czego potrzebujesz, aby szybko osiągnąć produktywność. Bardzo polecam ten samouczek jako punkt wyjścia: http://www.raywenderlich.com/5223/beginning-opengl-es-2-0-with-glkit-part-1
Innym źródłem, które polecam, jest książka Erika M. Bucka zatytułowana Learning OpenGL ES for iOS.
Niektórzy krytykowali to, mówiąc, że jest zbyt uproszczony. Ale właśnie tego szukałem. Pomogło mi to zrozumieć wszystkie podstawy i dało mi pomysł, gdzie powinienem się udać, aby nauczyć się bardziej zaawansowanych rzeczy. Ale nic dziwnego, że udało mi się zbudować aplikację rozszerzonej rzeczywistości przy użyciu prostych technik, których nauczyłem się na stronie Raya i w książce Erika. Dziękuję im obu za udostępnienie !!!
źródło
Istnieje wiele samouczków online, które możesz śledzić, ale dla początkującego nic nie może zastąpić tego: Prawdziwy samouczek 2D Open GL ES 2.0
źródło