Question

Quelle est la meilleure façon de le faire? Googler m'a montré un tas de façons, mais ce qui est le meilleur courant? Je serais assez heureux d'obtenir juste le modèle exporté de Maya et retravaillées sur l'écran de l'iPhone, mais je serais super content s'il y avait un moyen de le rendre, puis prennent en charge pincer pour zoomer, etc.

Merci beaucoup, vient de terminer ma première classe aujourd'hui de modélisation 3D et je suis content!

Était-ce utile?

La solution 3

Eh bien, à moins que quelqu'un a une meilleure façon, je suivais ce post: http: // heikobehrens .net / 2009/08/27 / obj2opengl / . Elle implique l'exportation du modèle comme obj, en cours d'exécution puis à travers un script Perl pour le convertir à une .h des structures C.

Autres conseils

Je viens de terminer un écrit spectateur modèle complet et manipulateur pour iPhone et iPad. En fait, je viens d'écrire mon propre analyseur de fichier qui stockerait les tableaux de sommets, puis dans ma boucle rendre je rends juste les tableaux. Il est assez heureux de faire droit, bien que les fichiers binaires lus beaucoup plus rapidement que les fichiers OBJ font. De cette façon, vous pouvez ouvrir un fichier, pas seulement ceux que vous « processus ». Il y a beaucoup d'exemples autour de l'Internet ainsi.

EDIT:

Il suffit de mettre vos sommets dans un proche tableau emballé:

vertexX, vertexY, vertexZ, normalX, normalY, normalZ

Alors que vous avez un tableau à deux dimensions de flotteurs, mais est tracé comme ci-dessus. Une fois que vous avez un réseau de flotteurs, il est facile de rendre.

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);

glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPointer(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);

glColor4f(R, G, B, 1); //range 0-1
glDrawArrays(GL_TRIANGLES, 0, numVertices); //number of floats in array divided by 6

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);

Alors il suffit de mettre dans votre render OpenGL-ES 1.1 boucle. Laissez-moi savoir si cela fait pour vous.

EDIT2:

Il suffit de préciser pour vous, si vous ouvrez le fichier OBJ dans un éditeur de texte, il est disposé comme ceci:

list of vertices
list of texture coordinates
list of normals
list of faces

et la liste des références visages les indices dans les trois autres listes dans le même ordre. Par exemple, une ligne pourrait ressembler à:

f 16/4/1  4/4/4  1/1/1

qui signifie que le premier sommet de l'index des références face 16 des sommets, l'indice 4 de textures, et l'indice 1 de Normales. Indice deuxième références d'index 4 sommets, indice 4 de textures, et l'indice 4 Normales, etc. Ensuite, vous avez juste besoin d'analyser les visages et tirer les valeurs correctes des différents tableaux en un seul réseau de flotteurs contenant des sommets et Normales sur la base indices de visage.

Vérifiez le livre des gars Pangea. Lien . Je ne me souviens pas s'il [cerveau] montre le code à lire Maya ou Alias. Quoi qu'il en soit, il est un incontournable.

[modifier] il montre comment lire les fichiers MAYA dans le chapitre 13

Vous pouvez également utiliser Unity3D et cocos3d et

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top