La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Visualización II - 2009. Como convertir un conjunto de vértices y caras en un objeto con movimiento ?

Presentaciones similares


Presentación del tema: "Visualización II - 2009. Como convertir un conjunto de vértices y caras en un objeto con movimiento ?"— Transcripción de la presentación:

1 Visualización II - 2009

2 Como convertir un conjunto de vértices y caras en un objeto con movimiento ?

3 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 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 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 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( t+ 0 ))*e -kt

8 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 Ventajas: Muy simple de implementar Animación fluida Desventajas: Aplicable a muy pocos casos Es independiente del entorno

10 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 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 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 P pos = P pos + P vel * T P VEL = P VEL + P AC * T Se computa la colisión con otros objetos, y se calcula la dirección de la velocidad y la aceleración

13 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

15 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 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 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 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

20 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 Define las poses de un personaje en determinados puntos de tiempo llamados : keyframes (análogo a la animación cuadro por cuadro)

23 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 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 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) Fr N-1 Frames Interpolados fr N

26 Keyframing x Vértice

27

28 While (rendering) Render Scene(T) Store Buffer to Texture(T) Render Texture(T * Texture[T-1]) += Buffer[T-1]Buffer[T]Render[T]

29 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 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 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 Los ángulos de las articulaciones pueden variar en el tiempo de forma de crear una animación Θ(t)

33 Dado un esqueleto, con sus parámetros Cuál es la posición del efector V s en las coordenadas de locales? VsVs V s = ( L 1 cos Θ 1 + L 2 cos (Θ 1 + Θ 2 ), L 1 sin Θ 1 + L 2 sin (Θ 1 + Θ 2 ) )

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

35 Dado un esqueleto, un conjunto de parámetros iniciales V O y un resultado V D : Cuáles son los parámetros del esqueleto para alcanzar V D ? VDVD

36 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)V O = V D 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 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

39 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 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 Pasos Se mueven los puntos de la malla de control Se vuelve a remallar En los pasos intermedios se utiliza interpolación

42 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 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

45 Mayormente Keyframing Modelos articulados + IK Skinning Skin compleja, musculos, movimiento

46 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 Animación con esqueletos + FK Para tiempo real, se usan los Frames ya calculados

48 Se aplican técnicas de IA para el movimiento en grupo : Flocking, Path finding Age of Empires III

49 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 http://www- etud.iro.umontreal.ca/~clavetsi/physicsingraphics-details.html http://www.pixar.com http://www.renderman.org


Descargar ppt "Visualización II - 2009. Como convertir un conjunto de vértices y caras en un objeto con movimiento ?"

Presentaciones similares


Anuncios Google