El problema de los polígonos finalmente va a ser "rodeado". En vez de invertir tiempo en intentar solucionarlo con la programación o cambiando la librería, se van a usar mallas más sencillas para que no ocurra.
Hemos comenzado a pensar en la animación. De momento se quiere mover solo la boca y luego ya se verá cómo añadir sonido y sincronizar ambas cosas. Para hacer la animación se valoran dos aproximaciones:
- Animación de esqueleto: Definir una estructura de datos que representa los huesos, y asociar una malla a cada uno. Cada vez que se muevan, la malla lo hará con él. Esta forma es muy apropiada para personajes completos y con una estructura más o menos compleja, pero no parece muy adecuado para nuestro caso, donde solo hay una cabeza, sin apenas articulaciones.
- Deformación de malla: Se tienen dos modelos, uno con la boca completamente abierta y otro completamente cerrada. Han de tener la misma estructura geométrica, con los puntos y los polígonos definidos con los mismos índices de la lista. A partir de las diferencias de coordenadas entre ambos modelos, se pueden calcular interpolando los puntos intermedios y generar la animación. Más sencillo para animación facial.
Se va a optar por el segundo. Los problemas que pueden surgir son limitaciones de memoria (al tener que almacenar dos o más mallas) o de CPU (al tener que recalcular todo el modelo al variar las coordenadas de sus vértices). Si se da cualquiera de los dos, habrá que pensar en alguna forma de optimización para evitarlo.

No hay comentarios:
Publicar un comentario