2010-10-13 3 views

Répondre

1

Au-delà du SDK Android il y a beaucoup de tiers moteurs 3D qui peuvent rendre la création de graphismes 3D beaucoup plus facile. Celui que je l'habitude de créer un simple jeu en 3D avec des fichiers de maillage importés était JPCT-AE:

http://www.jpct.net/jpct-ae/

Le forum de soutien est excellent et le développeur lui-même répond habituellement sur le forum dans les 1-2 jours. JPCT est centré sur le jeu dans sa conception, il peut donc y en avoir de meilleurs pour les graphiques 3D purs. Il existe plusieurs tutoriels avec un exemple de code pour vous aider à démarrer.

1

Pour dessiner un objet 3D, vous devrez peut-être utiliser l'API OpenGL ES. Ici vous avez les principales étapes que vous devrez peut-être mettre en œuvre afin de vous charger vos propres objets 3D:

  1. étendez la classe GLSurfaceView.Renderer donc de la onDrawFrame que vous faites tous les appels API OpenGL pour configurer l'environnement GL et en tirer les Objet 3D. Chargez vos données de modèle (sommets, normales, visages, etc) dans ByteBuffer, de sorte que vous pouvez les utiliser plus tard dans les appels API OpenGL.

  2. Vous devrez peut-être calculer une matrice de transformation si vous souhaitez faire pivoter, déplacer ou faire évoluer votre objet dans votre monde 3D (Matrix.rotateM)

  3. Calculer la vue Matrice de sorte que vous pouvez rendre l'objet 3D à partir d'un point quelconque de vue (Matrix.setLookAtM).

  4. Vous devrez peut-être également rendre l'objet avec un certain point de vue (Matrix.frustumM) afin qu'il semble plus réaliste. Une fois la matrice MVP (Model-View-Matrix) prête, vous pouvez initialiser les options OpenGL comme Viewport et la couleur de fond par exemple.

  5. Créez un nouveau programme OpenGL compilé avec un Vertex et un Shader de fragmentation qui s'exécutera sur le GPU pour traiter et rendre votre objet (cette étape n'est exécutée qu'une seule fois).

  6. Configurez le programme OpenGL précédemment créé (glUseProgram) et configurez les attributs d'entrée (glEnableVertexAttribArray) afin de pouvoir pousser les données du modèle comme les vertices à dessiner. Dessinez l'objet en dessinant tous les triangles ou éléments (points, lignes) qui forment l'ensemble de l'objet (glDrawElements ou glDrawArrays).

Vous pouvez également vérifier ce référentiel GitHub android-3D-model-viewer qui implémente tout cela en une démo open source, publiée dans le play store ainsi, qui peut rendre 3d * .obj fichiers de front d'onde.

Questions connexes