1 / 50

Clase IV : Animación

Clase IV : Animación. Visualización II - 2009. Animación Principio. Como convertir un conjunto de vértices y caras en un objeto con movimiento ?. Contenido. Sistemas Dinámicos: Animaciones procedurales Partículas y simulación Springs Transformaciones a objetos complejos Morphing

yehuda
Download Presentation

Clase IV : Animación

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Clase IV : Animación Visualización II - 2009

  2. AnimaciónPrincipio • Como convertir un conjunto de vértices y caras en un objeto con movimiento ?

  3. Contenido • Sistemas Dinámicos: • Animaciones procedurales • Partículas y simulación • Springs • Transformaciones a objetos complejos • Morphing • Keyframing • Modelos articulados y cinemática: • Jerarquías • Forward Kinematics • Inverse Kinematics • Algunas aplicaciones

  4. Animación y Simulación • Animación “Hacer que los objetos cambien su comportamiento de acuerdo a acciones prefijadas” • Simulación “Predecir como los objetos cambian su comportamiento de acuerdo a leyes físicas” “Son transformaciones espaciales a puntos u objetos, dependientes del TIEMPO”

  5. Consideraciones en la implementación de animaciones • Responder con Tiempos variables de acuerdo a la velocidad de la PC • Eficiencia de los métodos • Espacio utilizado por las estructuras intermedias • Relación de los objetos con el entorno

  6. Sistemas Dinámicos

  7. Animación Procedural • Describe el movimiento de forma algorítmica • Se expresa la animación por medio de funciones con ciertos parámetros • Ej 1: un reloj • Las manecillas rotan sincronizadas • Los movimientos se basan en el cambio de una variable expresada en “segundos” • Ej 2: una pelota que rebota • Height = Abs(sin(wt+q0))*e-kt

  8. Animación ProceduralFunciones paramétricas • Puedo definir la posición de un objeto/primitiva con una función dependiente del tiempo: • P(t) = (x(t), y(t), z(t)) • Para controla la velocidad de actualización, puede re-parametrizarse • P(u) = (x(u), y(u), z(u)) y U es función de t • Ej: una órbita de un planeta • x(t) = - 0.2 + cos t • y(t) = - 0.2 tan t + sin t

  9. Animación ProceduralPros y cons • Ventajas: • Muy simple de implementar • Animación fluida • Desventajas: • Aplicable a muy pocos casos • Es independiente del entorno

  10. Sistemas de Partículas • Las partículas son objetos atómicos • Se aplican reglas simples para moverlas • Pueden ser renderizadas de distintas formas de manera de simular diferentes fenómenos: • Fireworks • Waterfalls, spray, foam • Explosiones • Clouds • Crowds

  11. Sistemas de PartículasDefinición • Una partícula tiene: • Una posición y un tiempo de vida • Una regla de movimiento • Características para renderizar • Un sistema de partículas: • Controla la creación/destrucción de partículas • Actualiza el estado de cada partícula cada cierto tiempo • Las partículas internas conservan las fuerzas dentro del sistema de partículas • Los sistemas funcionan como emisores

  12. Un sistema Simple • Cada particula tiene : • Pos, Vel y Ac, son vectores en el espacio • En cada instante de tiempo, se actualizan los atributos de las partículas • Ppos = Ppos + Pvel * T • PVEL = PVEL + PAC * T • Se computa la colisión con otros objetos, y se calcula la dirección de la velocidad y la aceleración

  13. Sistemas de Partículas Aplicaciones • Variando los parámetros, se pueden crear muchos efectos diversos • Con variantes, se puede simular comportamientos de grupos de personas (Crowd Simulation) • Para dibujar una partícula la técnica más común es billboarding • Constantemente se agregan partículas • Se aplican diversas fuerzas a cada una: • Gravedad,Repulsion

  14. Sistemas de Partículas Aplicaciones

  15. Sistemas de PartículasPros y cons • Ventajas: • Simulan la física real del efecto • Animación continua • Tiene en cuenta el entorno • Se pueden aplicar efectos visuales en la GPU • Desventajas: • Para encontrar un efecto adecuado se requieren miles de partículas • Costo x Frame = O(#Partículas)

  16. Springs • Los springs unen una o más partículas • Ciertas fuerzas intentan mantener una distancia constante entre ellas • Si una partícula se mueve, se generan oscilaciones numéricas

  17. Springs De superficie : Tela • El truco es establecer la rigidez de los springs para lograr un movimiento real • Siempre se afecta solo a los vecinos • Fuerzas externas • Gravedad • Viscosidad • Viento • Generalización de estos métodos dio lugar a los MOTORES FISICOS

  18. Simulación de fluidos • Discretización del espacio • Con volumen • Con grillas • Con partículas • Resolución del movimiento • Ecuaciones de Navier Stokes • Elementos finitos • Autómatas celulares / Boltzmann

  19. Simulación de fluidos

  20. Sistemas de Partículas, Fluido dinámica y SpringsPros y cons • Ventajas: • Simulan la física real del efecto • Animación continua • Tiene en cuenta el entorno • Desventajas: • Por cada caso, hay que encontrar el modelo adecuado • Su visualización puede ser muy costosa y demandar mucho cálculo (existen simplificaciones al problema para hacerlo en tiempo real)

  21. Morphing , Keyframing & Kinematics

  22. KeyframingPrincipios • Define las poses de un personaje en determinados puntos de tiempo llamados : “keyframes” (análogo a la animación cuadro por cuadro)

  23. KeyframingPrincipios • El animador crea los keyframes, y el programa interpola entre ellos (tanto en 2D como 3D) • Los keyframes tienen la información del estado de la animación en un punto del tiempo ( posición de Vértices o transformaciones ) • Para tener una animación fluida necesito muchos Frames • => mayor espacio en memoria // Seudo-código Animación con Keyframing If (Repetir_Animacion) _Actual= Frames[Tiempo mod #Frames] Else _Actual= Frames[Tiempo] Costo x Frame = O(constante)

  24. KeyframingPrincipios • La creación de estados intermedios es conocido como “in-betweening” • El diseñador debe definir los keyframes estáticos y la duración del lapso de tiempo • Para los estados intermedios, las variables se calculan por interpolación lineal (lerp) o aproximación con splines • Puede servir para realizar transformaciones de forma

  25. KeyframingIn-between Fr N-1 fr N • Para modelos 3D representados con vértices N =getActualFrame(TiempoActual) For i=0 ; #Vertices { ultPosi = Vertices_Frames[N-1,i] proxPosi = Vertices_Frames[N,i] Vertices[i] = lerp(ultPosi , proxPosi , TiempoActual) } Costo x Frame = O(#Vertices) Frames Interpolados

  26. KeyframingUn ejemplo • Keyframing x Vértice

  27. Mejorar animaciónMotion BLUR

  28. Motion – Blur • While (rendering) • Render Scene(T) • Store Buffer to Texture(T) • Render Texture(T * Texture[T-1]) Buffer[T-1] Buffer[T] Render[T] + =

  29. KeyframingPros/Cons • Pros: • El “inbetweening” es simple de implementar • Control robusto de la animación • Menos tedioso y poco técnico • Cons • Crear la animación requiere mucho aporte del diseñador • Costo de almacenamiento alto

  30. Modelos Articulados • Es una forma de mejorar el diseño de los Frames • Las poses del personaje se describen por un conjunto de cuerpos rígidos (bones) unidas por articulaciones (joints) • Cada bone, se encuentra recubierto por una piel (Skin)

  31. Modelos ArticuladosJerarquía del esqueleto • Cada transformación a un bone es relativa al padre en la jerarquía : • La posición final de un bone es el resultado de la acumulación de transformaciones al recorrer el árbol

  32. Modelos Articulados • Los ángulos de las articulaciones pueden variar en el tiempo de forma de crear una animación Θ(t)

  33. Modelos ArticuladosForward Kinematics (FK) • Dado un esqueleto, con sus parámetros • Cuál es la posición del efector Vs en las coordenadas de locales? Vs Vs = ( L1cosΘ1 + L2cos (Θ1 + Θ2) , L1sinΘ1 + L2sin (Θ1 + Θ2) )

  34. Modelos ArticuladosForward Kinematics • Los cálculos se basan en los parámetros de entrada (Θ1, L1, Θ2, L2) • Para cada paso de tiempo, es posible usar interpolación para calcular el ángulo actual: • Θt = Θ1/#Frames Costo x Frame = O(#Joints)

  35. Modelos ArticuladosInverse Kinematics (IK) • Dado un esqueleto, un conjunto de parámetros iniciales VO y un resultado VD : • Cuáles son los parámetros del esqueleto para alcanzar VD ? VD

  36. Modelos ArticuladosInverse Kinematics • Significa buscar una pose p, que es una configuración de un esqueleto “real” • Requiere encontrar la inversa de una función no lineal: encontrar p tq. S(p)VO = VD • Es un problema no-determinístico con varias soluciones posibles • Se busca que la solución también minimice otros parámetros, como desviación respecto a la postura natural, rigidez de las uniones, consumo de energía, etc. Costo Solución= O(#Joints !)

  37. FK & IK • Las técnicas trabajan en conjunto • Inverse kinematics • Movimiento basado en objetivo • Los parámetros iniciales son el “vector” Origen y el Destino • Calcula las transformaciones necesarias para alcanzar el resultado • Forward kinematics • Tiene parámetros pre definidos • Se calcula el “vector” posición por cada tiempo, en función de las transformaciones existentes

  38. IK + Keyframing

  39. FK & IKPros/Cons • Pros: • Mejora el modelo de keyframing, al automatizar el proceso de los movimientos • Control robusto de la animación • Añade “inteligencia” al comportamiento • Cons • Requiere un control preciso de la deformación (blend) Algunos problemas comunes al aplicar la deformación

  40. Animación: Cómo calcular los frames?Morphing • Consiste en convertir una imagen original, basándose en puntos de control, en una nueva • Los puntos de control son usados para recalcular los valores de los píxeles en un tiempo t con una transformación • También es aplicable en 3D • Técnicas de deformación • Punto a punto • Mediante funciones matemáticas • Con puntos de control (Free Form Deformation)

  41. Free Form Deformation • Pasos • Se mueven los puntos de la malla de control • Se vuelve a remallar • En los pasos intermedios se utiliza interpolación

  42. Cómo calcular los frames?Captura de Movimiento • Motion capture es una de las técnicas más usadas para calcular los Frames de animación • Problemas: Una vez que los datos se capturaron, es difícil modificarlos para otro propósito • Técnicas de adquisición • Ópticas (pasivas y activas) • Mecánicas • Magnéticas • Acústicas

  43. Que se captura ? • Lo que necesitamos es: • Posición y orientación de los segmentos • Ángulos de las uniones • Largo de cada unión • Conectividad del esqueleto • Deformación de la piel • El sistema brinda • Posición de las marcas sobre la piel • Posición y orientación de las marcaciones

  44. Captura de Movimiento

  45. Como se hace en las películas y en los juegos? • Mayormente Keyframing • Modelos articulados + IK • Skinning • Skin compleja, musculos, movimiento

  46. Como se hace en las películas y en los juegos? • Controles jerárquicos • Gestos, sonrisas, pestañeo, etc. • IA • Simulación física para aspectos secundarios • Pelo, ropa, agua • Sistemas de partículas • Se requiere mucho esfuerzo en construir los modelos 3D, los esqueletos y los controles

  47. Como se hace en los juegos? Crowd Simulation en juegos • Animación con esqueletos + FK • Para tiempo real, se usan los Frames ya calculados

  48. Como se hace en los juegos? Crowd Simulation en juegos • Se aplican técnicas de IA para el movimiento en grupo : Flocking, Path finding Age of Empires III

  49. Recomendaciones • Definir a priori el tipo de animación que vamos a usar para cada tipo de objeto “Mantener lo simple, simple” • La visualización depende de la animación, pero deberìan estar desacopladas • Animar y luego visualizar (esquema serial) • Tener en cuenta el Framerate en la animación • Balancear la carga del CPU y del GPU

  50. Links • http://www-etud.iro.umontreal.ca/~clavetsi/physicsingraphics-details.html • http://www.pixar.com • http://www.renderman.org

More Related