C/Visual C - Maya y gráficos

 
Vista:

Maya y gráficos

Publicado por fernando.gomez (1604 intervenciones) el 27/07/2005 05:51:03
Saludos. A ver si a alguien se le ocurre alguna idea. Estoy desarrollando un juego en 3D. Como sabrán, la mejor técnica para las animaciones dinámicas es el empleo de sprites. Ahora, llevo un rato creando estos dichosos sprites, pero la creación de éstos me está llevando un buen rato. Para cargar el sprite en primer estado necesito hacer un resto de transformadas vectoriales, resolver diferenciales, calcular luces y sombras etc, a tal grado, que me está llevando alrededor de 200 líneas de código sólo mostrar un sprite.

Tonz algún compa del trabajo me recomendó que empleara algún editor de gráficos potente, y he aquí que conseguí la versión de Maya 6. Los sprites salieron relativamente rápido, y los guardo en los archivos binarios que Maya genera. En teoría, sólo me tengo que preocupar de cargar el sprite y renderizarlo en la pantalla.

El problema es que no tengo idea de cómo cargar los binarios de Maya (más bien, no sé cómo interpretarlos). Puedo cargarlos usando las librerías y componentes del mismo Maya, pero pues para la distribución del juego tendría que pagar licencias extras o sería ilegal, y pues no.

La pregunta entonces es: ¿cómo puedo manejar estos archivos generados por Maya sin emplear librerías (comerciales, GPL no importa) de terceros?

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Maya y gráficos

Publicado por King (18 intervenciones) el 27/07/2005 07:16:31
Hola:

Pues, mira depende muchisimo de que estés usando para el render en C++. En mi experiencia con OpenGL, casi no hay parsers para eso, lo que me llevo a tener que escribir uno yo, cosa que no recomiendo, pues es muchisimo trabajo y nunca queda como debería (despues de tanto tiempo, lo mas que pude importar era un cubo con 1 textura y 1 luz).

Ahora, con DirectX 9.0 ya hay métodos predefinidos que hacen eso. No recuerdo bien pero era algo parecido a loadFromMesh("miArchivo.sdx");

El archivo con esa extensión lo obtenias en tu Maya/3D max Studio al ponerle Save as...

Si no aparece una opción que te permita exportar como archivo mesh, o como archivo ASCII, entonces tendrías que buscar un plugin para Maya/3DS, que estoy esguro que son gratis, aunque también hay algunos propietarios.

Mira podrías empezar por aqui:

http://www.m3gexport.com/index.jsp

Espero te haya ayudado en algo

Visita mi página!!

http://www.novacreations.net

King
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Maya y gráficos

Publicado por El Mogur (202 intervenciones) el 27/07/2005 10:26:58
Hola!

Antes de nada, una pregunta... con sprites te refieres a objetos en 3D? Yo normalmente entiendo por Sprite una imagen en 2D que se "superpone" en la pantalla a modo de HUD; por eso al principio de tu pregunta no sabía muy bien de qué iba... ;)

Por otro lado, y complementando a lo que dice King, el formato de Maya "nativo" es propietario, y no han hecho público su significado (de hecho, mirando un poco en las SDK de Maya, se puede entender que ese formato es bastante inaccesible desde fuera, ya que está muy relacionado con la jerarquía de clases con la que han programado Maya...). Por eso, lo mejor para sacar modelos fuera de Maya es utilizando Plug-ins o el "Salvar como".

Si lo que quieres es grabar/cargar modelos estáticos (sin animaciones de ningún tipo), te recomiendo el formato OBJ. Creo que Maya graba en ese formato por defecto; es muy fácil de leer (es en modo texto), y siempre puedes convertirlo a un formato tuyo propio con poco esfuerzo para que no se vean tus modelos a la hora de distribuir tu juego.

Lo malo de los OBJ es que no contienen animaciones. Otra opción es utilizar, por ejemplo, un plug-in que permite, con una serie de pasos adicionales, tener un fichero MDL en el que está tu modelo. Me refiero a los ficheros MDL que utilizaba el Half-Life 1. Estos ficheros permiten almacenar en un solo MDL varias animaciones (Idle, andando, corriendo...), y funciona con huesos.

Hay una página del grupo de la Univ. Computense de Madrid que da el Master en Desarrollo de Videojuegos que tiene alguna información más, además de lectores de OBJ y MDL en C++ que tienen buena pinta...

http://gaia.sip.ucm.es/grupo/projects/javy/devzone.html

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Maya y gráficos

Publicado por fernando.gomez (1604 intervenciones) el 27/07/2005 18:15:23
Hola,

bueno, me tomé la libertad de extender el concepto de sprite de 2D a 3D, y no sólo como una imagen que se superpone, sino como un objeto que agrupa diversas transformaciones vectoriales para producir un objeto propio, capaz de auto-animarse dependiendo del contexto del juego, similar al sprite 2D.

De antemano gracias a ambos, voy a checar sus sugerencias. En verdad que llevo rato dándole vueltas al asunto. Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar