2010-01-07 41 views
12

Estoy tomando un curso OpenGL y tenemos la opción de crear modelos para usar en nuestras tareas con una aplicación de modelado 3D, como Maya o Blender.Importación de modelos en un proyecto OpenGL

Estoy no esperando escribir manualmente las coordenadas, así que tenía curiosidad por saber qué recursos debería buscar para escribir código OpenGL e importar modelos. (Las texturas vendrán más tarde). También me preocupa la escala en la que estoy importando, pero quizás sea una tontería preocuparse en este momento.

Gracias por cualquier sugerencia de recursos. OpenGL tiene tantas cosas que a veces me agobian cuando busco en Google lo que necesito.

EDITAR: Esto es lo que terminé usando. http://www.spacesimulator.net/tut4_3dsloader.html He descargado la versión de "Windows" y con unos pocos cambios de ruta a los includes, me puse en funcionamiento. No maneja archivos OBJ sino 3DS. Cheetah 3D también exporta a este tipo.

+0

No creo que esto pertenezca aquí en SO, SU sería mejor. –

+8

@Maxim ¿Por qué SU sería mejor para preguntar acerca de las bibliotecas para cargar modelos en algo que se puede dibujar usando OpenGL? Parece bonita programación relacionada conmigo. –

Respuesta

8

Blender puede guardar archivos en formato .obj, y una simple búsqueda en Google muestra varias bibliotecas para cargar esto en OpenGL. Here es uno.

2

Diría que el formato Obj es un buen equilibrio para la legibilidad y la funcionalidad si quiere analizarlo usted mismo.

http://en.wikipedia.org/wiki/Obj

La manera más fácil sería a ser encontrar una biblioteca que lo haga por usted, pero las posibilidades se limitan a su idioma elegido.

No debe preocuparse por la escala. Las matrices de OpenGL pueden reescalar fácilmente vértices.

4

Sugiero que no te preocupes por la escala de los objetos por ahora.

Ahora, lo que tendrá que hacer es establecer un formato para el archivo 3D. Hay MUCHAS opciones al exportar desde un programa 3D como Maya o Blender.

Podría recomendar un simple importador de COLLADA. La información de la especificación está aquí: http://www.khronos.org/files/collada_spec_1_4.pdf

Otra especificación que he estado usando últimamente también podría ser adecuada para esto es OBJ.

La especificación para OBJ se encuentra aquí: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

Además, hay varias muestras libre de archivos 3D OBJ ubicados here. Esto le permitirá ver el formato de los archivos y realmente verá lo fácil que pueden ser para analizar.

Tenga en cuenta que OBJ no admite la animación, y es bastante ineficaz para representar escenas de gran tamaño.

+0

La animación no es una preocupación. Tengo Cheetad3D y acabo de comprobar y vi que puede hacer obj files, lo cual es increíble. – bobber205

5

Uno de los formatos más simples que pueden usarse para exportar mallas es Wavefront OBJ (búsquelo en Wikipedia, ya que solo puedo publicar un enlace por el momento). Básicamente es un archivo de texto que no debería ser demasiado difícil de analizar.

O en realidad, si está permitido el uso de GLUT, se podría tratar de utilizar su cargador (como respondida en OpenGL FAQ 24.040)

No se preocupe por la escala del objeto en el momento, siempre se puede ajustar la escala objeto más tarde. Solo asegúrese de exportarlo con coordenadas locales, no globales (por ejemplo, [0,0,0] debe ser el centro del objeto, no el mundo que está modelando).

+0

GLUT es obligatorio (o al menos muy recomendado) para el curso ¡Un enlace tan increíble! – bobber205

+0

Estoy usando FreeGLUT. ¿No tengo suerte sin cambiar el GLUT que estoy usando? :( – bobber205

+0

@ bobber205 Hasta donde yo sé, si freeglut está presente en una máquina, el exceso simplemente importa todo el freeglut en sí mismo y no es más que una copia simbólica. Al menos eso es lo que mi freeglut.h y glut.h me dicen. Estoy usando un linux Box, y esto puede ser diferente para ti. Te sugiero que busques la fuente de glut.h y freeglut.h en tu ruta de inclusión para confirmar. ¡Salud! ---- Supongo que respondí una publicación desactualizada, pero espero que esto no reduzca la pertinencia de mi comentario. – ffledgling

Cuestiones relacionadas