500 likes | 759 Views
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
E N D
Clase IV : Animación Visualización II - 2009
AnimaciónPrincipio • 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 • Keyframing • Modelos articulados y cinemática: • Jerarquías • Forward Kinematics • Inverse Kinematics • Algunas aplicaciones
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”
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
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
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
Animación ProceduralPros y cons • Ventajas: • Muy simple de implementar • Animación fluida • Desventajas: • Aplicable a muy pocos casos • Es independiente del entorno
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
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
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
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
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)
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
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
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
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)
KeyframingPrincipios • Define las poses de un personaje en determinados puntos de tiempo llamados : “keyframes” (análogo a la animación cuadro por cuadro)
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)
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
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
KeyframingUn ejemplo • Keyframing x Vértice
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] + =
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
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)
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
Modelos Articulados • Los ángulos de las articulaciones pueden variar en el tiempo de forma de crear una animación Θ(t)
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) )
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)
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
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 !)
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
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
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)
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
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
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
Como se hace en las películas y en los juegos? • Mayormente Keyframing • Modelos articulados + IK • Skinning • Skin compleja, musculos, movimiento
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
Como se hace en los juegos? Crowd Simulation en juegos • Animación con esqueletos + FK • Para tiempo real, se usan los Frames ya calculados
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
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
Links • http://www-etud.iro.umontreal.ca/~clavetsi/physicsingraphics-details.html • http://www.pixar.com • http://www.renderman.org