Eh bien, voici ma demande. Je ne connais pas déjà OpenGL, et je ne suis pas disposé à l'apprendre, je veux apprendre OpenGL ES directement car je cible mon développement sur Android, cependant. Je souhaite apprendre OpenGL ES afin de développer mes jeux 2D . Je l'ai choisi à des fins de performances (car le dessin SurfaceView de base n'est pas aussi efficace en ce qui concerne les jeux RT). Ma question est: par où commencer? J'ai passé plus d'un mois à parcourir Google et à lire / essayer des tutoriels / exemples que j'ai trouvés n'importe où, mais pour être honnête, cela n'a pas beaucoup aidé et ceci pour deux raisons:
- Presque tous les articles / tutoriels que j'ai rencontrés sont liés à la 3D (je veux seulement apprendre à faire mon dessin de Sprites 2D)
- Il n'y a pas de base pour commencer puisque tous les articles visent des choses spécifiques comme: "Comment dessiner un triangle (avec des sommets)", "Comment créer un maillage" ... etc.
J'ai aussi essayé de lire du code source (ex.: Replica island) mais les codes sont trop compliqués et contiennent beaucoup de choses qui ne sont pas nécessaires; résultat: je me perds parmi 100 fichiers .java avec des noms de classe et des trucs bizarres.
Je suppose qu'il n'y a pas de cours comme celui que je recherche, mais je serai très heureux si quelqu'un pouvait me donner des directives et des liens peut-être pour savoir ce que je fais (uniquement le rendu OpenGL ES 2D Sprites! Rien 3D ).
and I'm not willing to learn it
Ce n'est pas une très bonne façon de commencer une question iciRéponses:
J'étais dans une situation similaire.
La façon dont j'ai commencé avec openGL a commencé par regarder les exemples / démos GLSurfaceView très basiques.
Commencez par configurer l'activité de votre application et configurez le canevas de base.
Prenez un butin dans le fichier de code source de l'île de réplique: GameRenderer.java pour savoir comment configurer votre canevas avec les indicateurs GL appropriés pour le rendu 2D (sprite). Vous devriez vraiment jeter un œil à SpriteMethodTest du même auteur de replica island: http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest
Voir cette question où j'ai publié mon propre code: Utiliser OpenGL pour remplacer Canvas - Android
Après avoir configuré votre canevas, vous commencez par appeler quelque chose comme: gl.glClear (GL10.GL_COLOR_BUFFER_BIT);
Après cela, vous êtes prêt à rendre un sprite. Tout d'abord, vous devrez charger le sprite dans une texture: http://qdevarena.blogspot.com/2009/02/how-to-load-texture-in-android-opengl.html
Cependant, c'est le tutoriel qui m'a vraiment aidé avec le chargement des sprites: http://tkcodesharing.blogspot.com/2008/05/working-with-textures-in-androids.html
Voici comment je fais, j'ai une classe nommée Texture.java:
Ensuite, dans ma méthode onDrawFrame (), je fais simplement:
Cela devrait vous permettre de dessiner des sprites 2D sur un canevas openGL. J'ai remarqué qu'il n'y a vraiment pas de tutoriel simple à ce sujet. J'espère qu'à l'avenir j'en publierai un dans mon blog de développement: http://developingthedream.blogspot.com/
la source
La programmation 2D n'est que de la programmation 3D contrainte à un plan. Vous n'aurez pas d'autre choix que d'apprendre la 3D, mais lorsque vous l'utilisez, définissez simplement z = 0.
Il existe un livre officiel sur OpenGL ES. Cela pourrait vous donner l'intro que vous recherchez: http://www.amazon.com/OpenGL-ES-2-0-Programming-Guide/dp/0321502795/
la source
Je reviendrais certainement sur Android - Chris Pruett Google IO conférence Écrire des jeux en temps réel pour Android Redux
prenez aussi le PDF
c'est vraiment utile à plusieurs niveaux, Chris a une très bonne expérience dans la création de jeux pour appareils mobiles
mais si vous êtes vraiment concentré sur la 2D, commencez par Canvas http://developer.android.com/guide/topics/graphics/index.html#drawing-with-canvas
Une autre option dépend du niveau de compétence est Flash + AdobeAIR vers Android, j'aime moi-même et aime le niveau de programmation et au fur et à mesure que vous commencez à développer, vous découvrirez pourquoi.
OpenGL: Vérifier - Nehe Productions
quelques applications que vous voudrez peut-être installer sur votre téléphone qui en valent la peine et qui sont gratuites: OpenGL Demo, min3d Framework, RedBook Sample
la source
Vous pouvez voir le projet : https://github.com/ChillingVan/android-openGL-canvas/blob/master/README-en.md Ceci implémente le canevas avec OpenGL. C'est du pur Java. Il implémente des parties de ce que le canevas normal peut faire.
la source
Je vois que beaucoup de bonnes informations ont déjà été fournies. Je voulais partager un site qui m'a aidé à me familiariser rapidement avec OpenGLE! Cela n'a pris que quelques mois et avait un système de coordonnées personnalisé basé sur le système de coordonnées cartésien. J'ai pu rendre un objet 3D sans caméra en utilisant des techniques de réalité augmentée.
J'ai commencé avec une seule expérience en programmation, sans aucune expérience OpenGL. J'ai utilisé le site de tutoriels de Ray Wenderlich. Les informations qui y sont fournies sont de premier ordre et faciles à comprendre. Il coupe la plupart des informations superflues et fournit ce que vous devez savoir pour être productif rapidement. Je recommande vivement ce tutoriel comme point de départ: http://www.raywenderlich.com/5223/beginning-opengl-es-2-0-with-glkit-part-1
L'autre ressource que je recommanderais est un livre d'Erik M Buck, intitulé Learning OpenGL ES pour iOS.
Certains l'ont critiqué en disant qu'il était trop simpliste. Mais c'est exactement ce que je cherchais. Cela m'a aidé à comprendre toutes les bases et m'a donné une idée de l'endroit où je devrais aller pour apprendre des choses plus avancées. Mais sans surprise, j'ai pu créer mon application de réalité augmentée en utilisant les techniques simples que j'avais apprises sur le site de Ray et le livre d'Erik. Merci à eux deux pour le partage !!!
la source
Il existe de nombreux tutoriels en ligne que vous pouvez suivre, mais pour un débutant rien ne peut remplacer celui-ci: Un vrai tutoriel 2D Open GL ES 2.0
la source