Download descargar aquí
Document related concepts
no text concepts found
Transcript
Warping & Morphing 1 Morphing La palabra Morphing se deriva de la palabra metamorfosis Cambio de forma o apariencia 2 Morphing En CG, el Morphing es una técnica de animación que permite mezclar dos imágenes estáticas, creando una secuencia en la que se produce una metamorfosis de la primera a la segunda imagen Se puede definir como Una transición de un objeto a otro Una transformación de una imagen a otra 3 Morphing La forma más sencilla de hacerlo es interpolando las imágenes Conocido en la industria del cine como cross-dissolve Se interpolan las imágenes Image(t) = (1-t)*Image1 + t*image2 0≤t≤1 4 Morphing ¿ Qué pasa si los objetos no están alineados ? Alinear y luego aplicar cross-dissolve 5 Morphing Cross-dissolve interpola dos imágenes de dos objetos, no los objetos como tal Por ello, si los objetos no están alineados o son muy diferentes, la transición no es suave i.e., la alineación global no siempre funciona ! 6 Morphing Lo ideal es encontrar un objeto intermedio Para ello es necesario deformar ambas imágenes a lo largo de la animación, y mezclarlas con cross-dissolve (1-t)* + t* = 7 Morphing La primera imagen se deforma gradualmente y se desvanece La segunda comienza totalmente deformada y va apareciendo 8 Warping Deformar una imagen significa aplicar un Warping a la imagen Un Warp es una transformación geométrica que genera una nueva imagen, distorcionada 9 Warping Matemáticamente, dada una trasformación (x‟,y‟) = T(x,y) y una imagen origen f(x,y), ¿ cómo se calcula la imagen transformada g(x‟,y‟) = f(T(x,y)) ? T(x,y) y‟ y x f(x,y) x‟ g(x‟,y‟) 10 Warping El cálculo se puede realizar de la imagen origen a la destino (forward warping) ¿ Qué sucede si la transformación cae entre dos píxeles ? Distribuir el color (splatting ) entre los píxeles vecinos de (x‟,y‟) T(x,y) y‟ y x f(x,y) x‟ g(x‟,y‟) 11 Warping El cálculo se puede realizar de la imagen destino a la origen (inverse warping) ¿ Qué sucede si la transformación cae entre dos píxeles ? Resampling !, e.g., interpolar valores de color de los vecinos (x,y) El más útil Elimina agujeros T-1(x,y) y‟ y x f(x,y) x‟ g(x‟,y‟) 12 Warping ¿ Cómo especificar el warp ? 1. Con funciones paramétricas Típico de los warping globales traslación rotación perspectiva afin escalamiento cilindrica 13 Warping ¿ Cómo especificar el warp ? 2. De forma no-paramétrica Pueden definirse independiente warps no-paramétricos u(x,y) y v(x,y) para cada posición (x,y) ! Es posible usar splines que formen un mallado Se interpola a una función warping completa, e.g., mesh warping 14 Warping Se mueven los puntos de control de los splines para especificar el warping 15 Warping Mesh Warping Para cada frame f Interpolar linealmente un mallado M, entre Ms y Mt Warp Is hacia I1, usando mallados Ms y M Warp It hacia I2, usando mallados Mt y M Interpolar linealmente imagen If entre I1 e I2 Fpara Is It Ms Mt M imagen fuente imagen objeto (target) mallado de la imagen fuente mallado de la imagen objeto mallado intermedio 16 Warping ¿ Cómo especificar el warp ? 2. De forma no-paramétrica En lugar de especificar todo el mallado, es posible especificar solo algunos puntos correspondientes 17 Warping El mapeo viene implicado por las correspondencias Se utiliza warping inverso P’ ? 18 Warping P wA A wB B wC C P P' wA A' wB B' wC C ' Coordenadas Baricéntricas P’ 19 Warping Coordenadas Baricéntricas P t1 A1 t2 A2 t3 A3 t1 t2 t3 1 20 Warping P wA A wB B wC C P' wA A' wB B' wC C ' Coordenadas Baricéntricas 21 Warping ¿ Cómo especificar el warp ? 2. De forma no-paramétrica También se pueden especificar vectores correspondientes Feature-Based Image Metamorphosis. Beier & Neely, SIGGRAPH 92. 22 Warping Beier-Neely El mapeo es inverso, así que se calcula la posición del pixel en la imagen fuente, a a partir del destino 23 Warping Beier-Neely u u es una fracción que va de 0 a 1 a medida que uno se mueve de P aQ Si X fuera colineal a P en 90°, u = 0 Si X = Q, entonces u = 1 X P cos( ) QP X P cos( ) Q P QP QP X P QP QP 2 24 Warping Beier-Neely v es una distancia en pixeles, equivalente a la norma del vector (X-P) proyectado sobre Perpendicular(Q-P) v X P cos( ) Pero esto solo es cierto si Perp(Q-P) está normalizado En cuyo caso la longitud de v es Perp(Q P ) Perp(Q P ) Perp(Q P ) X P QP v v X P Perp(Q-P) P v 25 Warping Beier-Neely Calculados v y u se puede aplicar el proceso inverso, pero basándose en los vectores Q’ y P’, de allí la fórmula 26 Warping Beier-Neely De esta forma se pueden especificar warping sencillos traslación escalamiento rotación y combinaciones 27 Warping Beier-Neely Pero no se pueden especificar cambios angulares, mirrors, skews, etc … 28 Warping Beier-Neely Entonces deben usarse varias líneas Se usa una combinación pesada de los puntos definidos por cada par de líneas correspondientes 29 Warping Beier-Neely Se calcula un desplazamiento Di de cada Xi’ con respecto a X, i.e., Di=Xi’-X La posición final se calcula con un promedio pesado de los Di 30 Warping Beier-Neely weigth[i] es el peso para el desplazamiento i-ésimo length[i] es la longitud de la línea i-ésima dist[i] es la distancia v del pixel a la línea i-ésima abs(v) si 0 < u < 1 Distancia del pixel a P, si u < 0 Distancia del pixel a Q, si u> 1 a, p y b son constantes que controla el warping. a controla la influencia de la cercanía del punto a la línea y evita div0. p indica la influencia de la longitud del rasgo. b potencia de disminución del peso conforme dist[i] aumenta. 31 Warping Beier-Neely Para cada pixel X en imagen-destino DSUM=(0,0), weightsum=0 Para cada línea Pi , Qi calcular u, v basándose en Pi , Qi calcular X’ basándose en u, v y Pi , Qi calcular desplazamiento Di = Xi’ – X para esta línea calcular dist[i] calcular weight[i] DSUM+=Di*weight[i] weightsum+=weight[i] FPara X’ = X+DSUM/weightsum imagen-destino(X) =imagen-fuente(X’) FPara 32 Warping Beier-Neely Generar animación(Imagen0, L0[…], Imagen1, L1[…]) Para cada frame intermedio Para cada par de líneas de i=1 a N L[i]= interpolar línea t-ésima entre L0[i] y L1[i] FPpara Warp0 = WarpImage(Image0, L0[…], L[…]) Warp1 = WarpImage(Image1, L1[…], L[…]) Para cada pixel p en imagen-final imagen-final(p) = (1-t)*Warp0(p) + t*Warp1(p) FPara FPara 33 original Warping Beier-Neely Pros: Más expresivo que los métodos que usan mallas Cons: Velocidad: el método es global, por lo que toma más tiempo que los locales Control: Algunas combinaciones „extremas‟ causan artefactos con artefacto Problema solventado, cambiando también la línea vertical 34 Warp0 Warping Beier-Neely Resultado Warp1 La secuencia de Black or White (Michael Jackson, 1991) fue hecha con este método 35 Warp0 Warping Beier & Neely Resultado Requirió mucho trabajo manual Warp1 20 segmentos de línea * 10 keyframes * cada secuencia 36 Warping ¿ Cómo especificar el warp ? 2. De forma no-paramétrica Usando modelos deformables (snakes u otro tipo de modelo) Mismos resultados que en la lámina 15, pero sin especificar un mallado completo 37 Morphing de múltiples fuentes Lee, Wolberg & Yong Shin. Polymorph: morphing among multiple images. IEEE Computer Graphics and Applications, 1998. 38 Control de Transición Determina la velocidad del warping y la mezcla de colores a través de la secuencia de morphing Todos los ejemplos anteriores usan una velocidad uniforme Las posiciones de las características se mueven a sus posiciones finales a una velocidad constante Es posible introducir transiciones no-uniformes para mejorar el contenido visual de la transformación En estos casos, se definen distintas velocidades para distintas partes de la imagen 39 Control de Transición Uniforme 40 Control de Transición No-Uniforme: Aceleración de la deformación de la nariz mientras se deja la forma de la cabeza intacta, en la primera mitad de la deformación 41 3D Morphing Feature-Based Volume Metamorphosis. Lerios, Garfinkle, Levoy. SIGGRAPH 95. Fuente A mitad del proceso Destino Marcado de correspondencias 42 3D Morphing Feature-Based Volume Metamorphosis. Lerios, Garfinkle and Levoy. SIGGRAPH 95. 43 View Morphing Los métodos de morphing anteriores no toman en cuenta cambios en el viewpoint o la postura del objeto El morphing siempre se hace asumiendo que las imágenes (o las vistas) fuente y destino son paralelas Por eso siempre se usa interpolación lineal En 3D, puede que esto no funcione 44 View Morphing La técnica de view morphing permite sintetizar cambios en el viewpoint y otros efectos 3D La técnica puede sintetizar transformaciones proyectivas 3D de objetos (rotaciones, traslaciones, shears, etc.) View Morphing. Steve Seitz, Chuck Dyer. SIGGRAPH 96. 45 View Morphing Dados dos imágenes I0 e I1, la técnica consiste en tres pasos Prewarp: Aplicar transformaciones proyectivas a las imágenes, produciendo dos imágenes predeformadas Î0 e Î1 Morph: Se produce Îs , interpolando linealmente las posiciones y colores de los puntos correspondientes en Î0 e Î1 Postwarp: Aplicar las transformaciones proyectivas inversas a Îs , obteniendo la imagen Is 46 View Morphing Ejemplo 47 View Morphing Image morphing vs. View morphing Image morphing (arriba): Las imágenes en los frames intermedios se contraen y estiran View Morphing (abajo): La secuencia producida es físicamente consistente 48 Aplicaciones La aplicación más conocida del morphing, sin duda, es en la industria del entretenimiento (películas, juegos de video, videos musicales, etc.) y la publicidad (comerciales) 49 Aplicaciones El warping, sin embargo, tiene un rango mucho más amplio de aplicaciones 50 Proyecto 2 Visualización de Terrenos Generar/cargar un terreno Generar mapa de alturas (punto medio o partículas) / Cargar mapa de alturas Cargar y aplicar una textura al mallado Iluminación del terreno LOD con Geomipmapping “volar” y “caminar” por el terreno Rotación de la vista Zoom in/Zoom out 51