Pregunta

¿Cuál es la mejor manera de hacer esto? Google me ha mostrado un montón de maneras, pero lo que es el actual mejor? Estaría bastante feliz acaba de obtener el modelo exportado de Maya y rendido en la pantalla del iPhone, pero estaría emocionado si había una manera de hacerla, entonces el apoyo pizca de zoom, etc.

Muchas gracias, acabo de terminar mi primera clase de modelado en 3D hoy y estoy feliz!

¿Fue útil?

Solución 3

Bueno, a menos que alguien tiene una mejor manera, he seguido este mensaje: http: // heikobehrens .net / 2009/08/27 / obj2opengl / . Se trata de exportar el modelo como un .obj, a continuación, ejecutarlo a través de un script en Perl para convertirlo en un .h de estructuras C.

Otros consejos

acabo de terminar de escribir un visor de modelos con todas las funciones y manipulador para el iPhone y el IPAD. Básicamente, que acabo de escribir mi propio analizador de archivos que almacenar los conjuntos de vértices, entonces en mi rendir bucle que solo los presentan las matrices. Es bastante sencillo de hacer, aunque los archivos binarios leídos en mucho más rápido que los archivos .obj hacen. De esta manera, se puede abrir cualquier archivo, no sólo ustedes los "procesos". Hay un montón de ejemplos en todo el Internet también.

EDIT:

Sólo hay que poner sus vértices en un empaquetamiento compacto matriz:

vertexX, vertexY, vertexZ, normalX, normalY, normalZ

Así que usted tiene una matriz unidimensional de flotadores, pero está trazado como la de arriba. Una vez que tenga una red de flotadores, es muy sencillo de hacer.

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);

A continuación, sólo hay que poner esto en su OpenGL-ES 1.1 render bucle. Déjame saber si esto lo hace por usted.

Edit2:

Sólo aclarar para usted, si abre el archivo OBJ en un editor de texto, que se presenta de esta manera:

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

y la lista de caras referencias los índices en los otros tres listas en el mismo orden. Por ejemplo, una línea podría ser:

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

que significa que el primer vértice del índice cara referencias 16 de vértices, índice 4 de texturas, y el índice 1 de las normales. Segundo índice de referencias de índice 4 de vértices, índice 4 de texturas, y el índice de 4 de las normales, etc. Entonces sólo tiene que analizar las caras y tire de los valores correctos de las diferentes matrices en una sola matriz de flotación que contiene los vértices y normales basado en la índices de cara.

Comprobar el libro de los chicos de Pangea. Enlace aquí . No recuerdo si él [del cerebro] muestra el código para leer Maya o alias. De todas formas, es una lectura obligada.

[editar] que muestra cómo leer archivos maya en el Capítulo 13

También puede utilizar Unity3D y cocos3d así

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top