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

Slides:



Advertisements
Presentaciones similares
Dispersión clásica de partículas cargadas
Advertisements

Desarrollo de Juegos de Video en 3D
Sistemas de Graficación
Tema 3. movimiento vibratorio armónico
UNIX COMP 240.
III - Gestión de memoria
COMPENSACIÓN DE MOVIMIENTO
TEMA 7 CINEMÁTICA Primera Parte.
Dinámica: Estado de los cuerpos que encuentran en movimiento.
Clase # 11 Dinámica Molecular
Modelo matemático de un yacimiento de aceite
Representación en espacio de estado
Introducción Animación por ordenador es el conjunto de técnicas que emplean el ordenador para generación escenas que produzcan la sensación de movimiento.
NECESIDAD DE LA SIMULACIÓN POR ORDENADOR
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Es el arte de instruir a un computador sobre los pasos necesarios para resolver los problemas que influyen en la creación de un videojuego. Es el.
Modelado en 3D y Composición de Objetos
Elasticidad y los Modelos Viscoelásticos
INTRODUCCIÓN A DINÁMICA DE SISTEMAS. QUE ES DINÁMICA DE SISTEMAS ? Es una metodología para el estudio y manejo de sistemas complejos, tal como los que.
¿QUE ES LA BIOMECANICA? Es el cuerpo de conocimientos que usando las leyes de la física y de la ingeniería describe los movimientos efectuados por lo distintos.
Conceptos Fundamentales
Computación 1: Rotación de una lata medio llena..
Vibraciones y oscilaciones El Movimiento Armónico Simple
Real Time Global Illumination for Dynamic scenes Alejandro Drago Cesar Villasana
Profesores: Danilo Bassi y Arturo Alvarez
Integrantes: -Carlos Asmadt. - Manuel Perez.. Modelado del entorno, el mundo, la realidad... Objetos Rígidos Objetos Difusos Superficies no definidas.
Curvas y superficies en 2D y 3D
Flujo de carga en Sistemas de Potencia.
Tema 6: Modelado de sistemas distribuidos
Inteligencia artificial
Realidad virtual Integrantes: Segundo Agurto Cristian Venegas.
DINAMICA DE LOS SISTEMAS DE PARTICULAS
Estrategias de Optimización Visualización II – 2009 Ing. Juan P.D’Amato.
UNIDAD III Control Cinemático del Robot Tipos de trayectorias
Sesión 6: Campos de Markov
GRAFICOS 3D POR COMPUTADORA. La graficación por computadora es una de las áreas más importantes de las ciencias de la computación y su principal objetivo.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Robótica Inteligente L. Enrique Sucar Leonardo Romero Marco López ITESM Cuernavaca.
Universidad Simón Bolívar Departamento de Computación CI5321 Computación Gráfica II Dinámica Jessica Fariñas Yessica De Ascencao.
Cinemática: Rama de la Mecánica que se dedica a la descripción del movimiento mecánico sin interesarse por las causas que lo provocan. Dinámica: Rama de.
Métodos de Análisis Ingenieril
Métodos Matemáticos de Especialidad (Mecánica-Máquinas) Presentación del trabajo Grupo 19 Nuria Cruz Fonfría03415 Antonio Puebla Morales03313 Alba Martínez.
Deben tener igual dirección, igual módulo y sentido opuesto.
Una aproximación a la visión
Sistemas, Procesos y Modelos
Proyectos fin de carrera
DINÁMICA DEL MOVIMIENTO ROTACIONAL
DINAMICA GENERAL DE LA PARTICULA
Facultad de Ingeniería
Introducción & estática de partículas
Modelos matemáticos y solución de problemas
Vibraciones Mecánicas
CINEMATICA.
Luciano Reyes Itzel Elvira
ORGANIZACIÓN DE SISTEMAS DIGITALES DRA. LETICIA FLORES PULIDO Dra. Leticia Flores Pulido / DCSCE / Primavera
Mecánica de los fluidos
Metodología de la programación
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Robótica M.C. Fco. Javier de la Garza S.
MIA - Grupo 5 Unidad 2.
MODELAMIENTO MATEMÁTICO DE PROCESOS INDUSTRIALES
Tema IV CINEMÁTICA DE LOS FLUIDOS. Cinemática La cinemática es la rama de la mecánica clásica que estudia las leyes del movimiento de los cuerpos sin.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
El movimiento vibratorio
UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TACHIRA UNIDAD DE ADMISION CURSO PROPEDEUTICO ASIGNATURA FISICA (Dinámica – Parte III) Prof. Juan Retamal G. .
Roger Miranda Colorado
Transcripción de la presentación:

Visualización II

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

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

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

Sistemas Dinámicos

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

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) = cos t y(t) = tan t + sin t

Ventajas: Muy simple de implementar Animación fluida Desventajas: Aplicable a muy pocos casos Es independiente del entorno

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

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

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

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

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)

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

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

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

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)

Morphing, Keyframing & Kinematics

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

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)

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

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

Keyframing x Vértice

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

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

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)

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

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

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

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)

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

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 !)

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

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

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)

Pasos Se mueven los puntos de la malla de control Se vuelve a remallar En los pasos intermedios se utiliza interpolación

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

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

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

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

Animación con esqueletos + FK Para tiempo real, se usan los Frames ya calculados

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

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

etud.iro.umontreal.ca/~clavetsi/physicsingraphics-details.html