Manera recomendada de cargar (no interactivo) animaciones (hechas usando Maya) en OpenGL ES en iOS y Android

Hasta ahora hemos sido capaces de cargar con éxito archivos OBJ estáticos (convertidos a .h) en nuestra aplicación OpenGL.

Entonces podemos aplicar transformaciones a estos objetos para animarlos.

El siguiente paso en nuestro proyecto es tener un animador 3D profesional para hacer las animaciones en maya, y crear un "Loader" para mostrarlas en 3D con OpenGL.

Hemos encontrado muchos ejemplos en línea que tratan con videojuegos y cargar modelos estáticos, pero nuestras animaciones serán predefinidas por el animador, solo tenemos que cargarlas.

Es importante mencionar que no podemos convertirlo en un video porque estamos construyendo esto encima de una biblioteca AR que permitirá a los usuarios literalmente caminar alrededor de la animación, esa parte está resuelta, solo necesitamos obtener las animaciones para hacer usando OpenGL.

He mirado en esta pregunta con respecto al formato apropiado que el animador debe utilizar para exportar de Maya.

El formato de archivo .dae (COLLADA) parece ser una buena forma de encapsular información de modelos y animaciones, y cargarla usando Assimp pero no hemos encontrado este cargador compilado para iOS o Android (que son las plataformas que estamos desarrollando).

Otro enfoque que hemos visto recomendado en línea es exportar una serie de archivos OBJ y cargar el OBJ correspondiente para cada marco.

Otro enfoque que vemos es usar un "motor", pero hay tantos que es difícil saber en cuál debemos enfocarnos.

No nos importa pagar por un motor, pero ¿cómo sabemos cuál funcionará mejor?

Encontramos estos ejemplos , pero no vemos un "ganador" claro.

¿Alguien ha conseguido algo como esto trabajando en dispositivos iOS o Android?

¿Cuáles serían sus recomendaciones?

2 Solutions collect form web for “Manera recomendada de cargar (no interactivo) animaciones (hechas usando Maya) en OpenGL ES en iOS y Android”

He hecho un marco 3D para Android y esto es lo que pensaba animación:

La animación esquelética se puede hacer simplemente con el código: cargar un OBJ para cada miembro y dejar que la CPU haga los cálculos esqueléticos, a continuación, transformar cada OBJ a las coordenadas y los ángulos dados por la CPU.

La animación de fotogramas clave se puede hacer usando OBJs que tienen el mismo número de vértices. A continuación, puede utilizar la función lineal que toma una variable t (tiempo) y le da la malla combinada. También puede utilizar las curvas Bezier para animaciones más suaves.

Otro aspecto que me gustaría señalar es que puede importar archivos MD5. Los archivos MD5 pueden contener datos de animación y son binarios, por lo que cargarlos es rápido y no requiere un analizador.

Más sobre MD5s aquí .

PS Si lo desea, le puedo recomendar un gran libro que cubre una gran cantidad de problemas 3D cuando se desarrolla en el móvil, Solo deje un comentario Y .. si no te importa gastar dinero, solo compra Unity. Es muy bueno y es muy versátil.

Bueno, OpenGL (-ES) en sí es sólo una API de dibujo, no hace nada relacionado con la animación. La reproducción de animación es gestionada por un sistema de animación propio. La salida de un sistema de este tipo son parámetros de transformación, que puede utilizar posteriormente para colocar y deformar geometría al dibujar con OpenGL. El enfoque habitual de estos días es un sistema de animación esquelético, es decir, se añade un poco de esqueleto al modelo, donde cada vértice está ligado a un conjunto de huesos, con una ponderación de vértice por hueso. Los huesos pueden ser representados como una combinación de una traducción y un cuaternión. La traducción por lo general es una constante, por lo que el sistema de animación habitual le da es el vector de cuaterniones que describen la pose de esqueleto. Esto se carga en una textura uniforme (a vec4) o GL_RGBA32F 1D, siendo el ancho el número de huesos, que se utiliza en el sombreado de vértices para aplicar la transformación por vértice basada en la pose. Los pesos vértice-hueso suelen presentarse como atributos de vértice adicionales.

  • Herramienta de visualización para móviles (tableta)
  • Android Openg GL ES 2 dibujo grandes texturas lento
  • Transformación de perspectiva
  • ¿Se admiten objetos Array Vertex de ES OpenGL en cualquier emulador de Android?
  • Android Opengl FBO fuera de la pantalla
  • Cocos2d-xv 2.0.4 FATAL EXCEPTION GLThread cuando se ejecuta en el emulador de Android
  • La GPU del emulador no funciona
  • ¿Por dónde empezar para el efecto Flip de página en android?
  • Threading proceso de carga de texturas para el juego opengl android
  • Intercambiar píxeles de MainTex con otras texturas a través de la superficie Shader (Unity)
  • GLES10.glGetIntegerv devuelve 0 en el dispositivo Samsung
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.