Story Transcript
5. Animación por ordenador (I). 5.1. 5.2. 5.3. 5.4. 5.5.
5.6.
INTRODUCCIÓN. CONCEPTOS BÁSICOS. PRIMEROS HITOS EN LA HISTORIA DE LA ANIMACIÓN ANIMACIÓN TRADICIONAL APLICADA A LA ANIMACIÓN POR ORDENADOR ESPECIFICACIÓN DE ANIMACIONES 5.5.1. Listas lineales 5.5.2. Lenguajes de programación de alto nivel 5.5.3. Lenguajes gráficos MÉTODOS PARA CONTROLAR UNA ANIMACIÓN 5.6.1. Control explícitamente declarado 5.6.2. Control procedural 5.6.3. Control basado en restricciones 5.6.4. Control por análisis de la acción en vivo 5.6.5. Control cinemática y dinámico Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
1
5. Animación por ordenador (I). 5.7. TÉCNICAS DE ANIMACIÓN POR ORDENADOR 5.8. VISUALIZACIÓN DE ANIMACIÓN 5.9. TRANSMISIÓN DE ANIMACIONES 5.10. FORMATOS PARA DESCRIBIR ANIMACIONES 5.10.1. FLC/FLI (Animator (Animator Pro File Formats). Formats). 5.10.2. GIF89a. GIF89a. 5.10.3. Virtual Reality Modeling Language (VRML) 5.11. HERRAMIENTAS PARA LA CREACIÓN DE ANIMACIONES
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
2
1
5.1.- Introducción z
Animación= gráficos e imágenes estáticas entre las que existe una relación temporal.
z
Animación= imágenes realizadas mediante gráficos y generadas por ordenador.
z
Una secuencia de imágenes está caracterizada por su resolución, número de colores y el número de imágenes que se muestra por unidad de tiempo (frame rate), de forma que la impresión obtenida sea la de que existe movimiento.
z
Sensación de movimiento continuo: fr ≈ 25 imágenes por segundo. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
3
5.2.- Conceptos básicos (I). z
El término animación viene del griego “anemos”=viento, aliento y del latín “animus”=dar vida, por eso se asocia habitualmente con el de movimiento.
z
ANIMACIÓN POR ORDENADOR= GENERACIÓN, ALMACENAMIENTO y PRESENTACIÓN DE IMÁGENES QUE EN SUCESIÓN RÁPIDA PRODUCEN SENSACIÓN DE MOVIMIENTO.
z
Persistencia de visión – –
Semejanza entre fotogramas. Fluidez de movimiento. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
4
2
5.2.- Conceptos básicos (II). z
Reproducción de movimientos reales – Aliasing temporal – Difuminado de movimiento
z
Si disponemos de una serie de fotogramas de una animación, y suponiendo una frecuencia de presentación constante: – Al aumentar el número de fotogramas mostrados por segundo el movimiento se hace más lento. – Al disminuir el número de fotogramas mostrados por segundo el movimiento se hace más rápido. – Por ejemplo, si se elimina una imagen de cada tres, la velocidad aumenta un 50%.
z
Animación en tiempo real Vs Animación fotograma a fotograma. fotograma.
z
Origen de los fotogramas Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
5
5.2.- Conceptos básicos (III). z
En un sistema de animación por ordenador se distinguen los siguientes componentes: – – –
– – –
Guión: Descripción detallada de las escenas de la animación. Decorado: Elementos inmóviles de la escena. Actores: Elementos móviles definidos mediante unas variables que se modifican a lo largo del tiempo siguiendo unas reglas determinadas. Focos: Fuentes de luz que iluminan la escena.Se pueden modificar tanto posición como características a lo largo del tiempo. Cámaras: Se definen por su posición, su punto de visión y ángulo de visión. Panorámicas, zooms, fundidos, etc. Coreografía: Creación de elementos, descripción de sus movimientos y sincronización de los mismos.
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
6
3
5.2.- Proceso de obtención de animaciones. z
Entrada – –
z
Composición –
z
Digitalización de dibujos Postprocesamiento
Composición de imágenes para combinar elementos de fondos y primeros planos
Intermedio –
Necesidad de posiciones intermedias para la sensación de animación de una posición a otra.
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
7
5.3.- Primeros hitos en la historia de la animación z z z z z z z z z z
1824 Peter Roget presenta el trabajo "The persistence of vision with regard to moving objects" en la British Royal Society. …… 1895 Los hermanos Louis y Auguste Lumiè Lumière patentan un dispositivo llamado cinemató cinematógrafo, capaz de proyectar imá imágenes en movimiento. 1906 J. Stuart Blackton realiza la primera pelí película de animació animación titulada "Humorous phases of funny faces". 1909 Winsor McCay realiza unos dibujos animados llamados "Gertie the Trained Dinosaur" conteniendo unos 10000 dibujos. … 1927 La Warner Brothers lanza "El cantante de Jazz", primera pelí película sonora. 1928 Walt Disney crea los primeros dibujos animados con sonido sincronizado: el rató ratón Mickey. Mickey. …….. …….. 1964 Ken Knowlton de los laboratorios Bell, comienza a desarrollar desarrollar técnicas informá informáticas para generar animaciones. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
8
4
5.4.- Animación tradicional aplicada a la animación por ordenador (I). Los principios básicos de la animación tradicional son los siguientes: siguientes:
z
1.
Anticipación: Se prepara la siguiente acción (por ejemplo, antes de salir corriendo postura forzada en sentido contrario). La anticipación permite: z z z
Preparar los músculos para la acción. Preparar al espectador y captar la atención hacia la acción principal. principal. Indicar la velocidad de acción.
2.
Estiramiento y compresión: Para conseguir movimientos fluidos y sensación de elasticidad. Los objetos se deforman en la dirección dirección de desplazamiento para dar sensación de peso y gravedad.
3.
Solapamiento y continuación de las acciones: z z
El solapamiento consiste en comenzar la siguiente acción antes de de terminar la anterior. La continuación significa que los movimientos no se detienen bruscamente, bruscamente, sino que continúan más allá de su posición final (p.e. raquetazo que continúa por inercia mucho después de haber dado a la bola).
9
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
5.4.- Animación tradicional aplicada a la animación por ordenador (II). z
Otros efectos que podemos realizar sobre las animaciones son: –
Exageración: Sirve para llamar la atención sobre los elementos más importantes.
–
Acción principal y acciones secundarias: z z
z
La acción principal ha de ser única y clara: debe pasar una sola cosa en cada momento. Se utilizan acciones secundarias (anticipación, continuación, etc.) etc.) que complementan la acción principal sin competir con ella.
La mayoría de los desplazamientos siguen trayectorias curvas. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
10
5
5.4.- Animación tradicional aplicada a la animación por ordenador (III). Uso de terminología cinematográfica en animación:
z
Película: toda la animación en su conjunto Escena: cierta continuidad en cuanto a lugares, actores y acciones Secuencia: sucesión de planos Plano: serie de fotogramas captados por la cámara de forma ininterrumpida Fotograma: imágenes individuales
– – – – –
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
11
5.5 Especificación de animaciones z
Listas lineales – –
z
Lenguajes de programación de alto nivel – –
z
Eventos definidos por frame de inicio, frame de fin y acción a realizar Ej: 42,53,ROTATE “PALM”,1,30
Primitivas como vectores, colores, polígonos, puntos de vista, submundos, transformaciones geométricas, etc. Ej: (grasp my-cube) ; (cw 0.05) ; (right panning-speed)
Lenguajes gráficos –
Describen las animaciones de forma visual Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
12
6
5.6 Métodos para controlar una animación (I) z
Control explícitamente declarado
z
Control procedural
– – –
z
Comunicación entre diferentes objetos Cada objeto conoce propiedades estáticas/dinámicas de otros objetos
Control basado en restricciones – –
z
Descripción de todos los eventos posibles
Movimientos limitados por el entorno Jerarquías de condiciones
Control por análisis de la acción en vivo – – –
Estudio de movimientos de objetos en el mundo real Actuación de seres reales, procesamiento del resultado y cambiar seres reales por animados. Asignar indicadores a puntos clave del cuerpo humano y cálculo del modelo de animación en base a ello Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
13
5.6 Métodos para controlar una animación (II) z
Control cinemático y dinámico –
Cinemática: Estudio del movimiento independientemente de las fuerzas z z
–
Cinemática directa: Calcular posiciones de las estructuras en base a la rotación de articulaciones Cinemática inversa: A partir de una posición, obtener la rotación
Dinámica: Estudio del movimiento teniendo en cuenta las fuerzas que intervienen z z
Dinámica directa: a partir de las masas y fuerzas, obtener aceleraciones Dinámica inversa: a partir de masas y aceleraciones, calcular las fuerzas a aplicar Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
14
7
5.7.- Técnicas de animación por ordenador (I). z
Algunas de las técnicas de animación por ordenador más comunes son: son: –
ROTOSCOPIA: Capturar un movimiento real y utilizar esa información para mover un diseño generado por ordenador. z
z z z
–
Simplificación del modelo. modelo. Normalmente los movimientos reales son demasiados complejos para intentar capturarlos íntegramente. Hay que identificar identificar las partes fundamentales del movimiento. Identificación y marcado de puntos de referencia. referencia. Normalmente, son las articulaciones, y se suelen marcar con círculos de color rojo. Realización de movimientos y recogida de datos (mediante múltiples cámaras de vídeo, traje de datos, dataglobe, dataglobe, etc...). etc...). Una vez digitalizada la información, se aplica esta al modelo generado generado por ordenador para controlar su movimiento.
ANIMACIÓN PASO A PASO: Consiste en definir manualmente cada uno de los fotogramas. z z
En algunos tipos de animación tradicional (animación de figuras de plastilina) se usa esta técnica. Esta técnica es muy lenta y sólo se utiliza para pequeñas animaciones. animaciones.
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
15
5.7.- Técnicas de animación por ordenador (II). –
ANIMACIÓN POR COTAS: Consiste en basar el movimiento en unos fotogramas fundamentales (keyframes) y luego dejar que el sistema sistema genere automáticamente los fotogramas intermedios mediante métodos de interpolación. z z
–
Es importante que las cotas sean representativas del movimiento para que la interpolación tenga suficiente información. Esta técnica está basada en los métodos de animación tradicionales, tradicionales, en los que los animadores más expertos dibujan los momentos fundamentales del movimiento (cotas o keyframes) y los animadores animadores principiantes dibujan los fotogramas intermedios (inbetweens).
ANIMACIÓN PROCEDURAL: Consiste en describir el movimiento de forma algorítmica. z z
Hay una serie de reglas que controlan como se van modificando los los distintos parámetros, como la posición o la forma a lo largo del tiempo. Es una buena solución para movimientos sencillos pero no para movimientos más complejos. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
16
8
5.8.- Visualización de animación (I) z
Convertir los objetos animados a mapas de píxels
z
10-20 veces/segundo
z
Tiempo de generación de imagen : 100 ms – –
Conversión Borrado y redibujado
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
17
5.8.- Visualización de animación (II) Cargar LookUp Table (LUT) para mostrar valores como color de fondo Convertir objeto en image0 Cargar LUT para mostrar image0 Repetir Convertir objeto en image1 Cargar LUT para mostrar image1 Rotar la descripción de la estructura de datos del objeto Convertir objeto en image0 Cargar LUT para mostrar image0 Rotar la descripción de la estructura de datos del objeto Hasta (condición de terminación) Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
18
9
5.9.- Transmisión de animaciones z
Transmisión de la representación simbólica – – –
z
El receptor debe interpretar esa representación El receptor debe hacer la conversión Rápida transmisión, lenta visualización
Transmisión de mapas de píxels – –
El receptor sólo visualiza Lenta transmisión, rápida visualización Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
19
5.10.- Formatos para describir animaciones z
FLC/FLI
z
GIF
z
VRML
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
20
10
5.10.1.- FLC/FLI (I). z
FLC/FLI (Animator Pro File Formats). –
– – – –
z
La idea del formato FLI es simple: “NO HAY QUE PREOCUPARSE DE GUARDAR LAS PARTES DE UN CUADRO QUE SE MANTIENEN DEL CUADRO ANTERIOR”. Con ello ahorramos espacio de almacenamiento y ganamos en velocidad. El fichero está compuesto por una cabecera de 128 bytes seguida por una secuencia de frames. El primero de los frames está comprimido utilizando un esquema run-length. Los siguientes frames se guardan como la diferencia con el cuadro anterior. Existe un frame extra al final que recoge la diferencia entre el último y el primer frame.
Cabecera 128 bytes – –
22 comunes FLC/FLI 106 válidos solo para FLC Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
21
5.10.1.- FLC/FLI : Cabecera FLI. typedef struct _FlicHeader { DWORD FileSize; /* tamaño del fichero */ WORD FileId; /* indicador de formato de archivo 0xAF11: FLI 0xAF12: FLC*/ WORD NumberOfFrames; /* número de frames, máximo 4000 */ WORD Width; /* ancho de la pantalla en píxels */ WORD Height; /* alto de la pantalla en píxels */ WORD PixelDepth; /* bits por pixel: valor 0x8 */ WORD Flags; /* valor 03h */ DWORD FrameDelay; /* retardo entre frames; FLI: unidades de 1/70 segundos; FLC: 1/1000 segundos */ WORD Reserved1; /* valor 00h */ // Los siguientes valen 0x00 en un fichero FLI DWORD DateCreated; /* fecha/hora de creación, desde el 1 Enero 1970, formato MSDOS */ DWORD CreatorSN; /* número de serie del programa creador; si fue creado con la librería FlicLib valor 46h 4Ch 49h 42h ("FLIB") */ DWORD LastUpdated; /* fecha/hora de la última modificación, como para la creación */ DWORD UpdaterSN; /* número de serie del programa actualizador */ WORD XAspect; /* aspect ratio del eje X*/ WORD YAspect; /* aspect ratio del eje Y */ BYTE Reserved2[38]; /* valor 00h */ DWORD Frame1Offset; /* Offset del primer frame */ DWORD Frame2Offset; /* Offset del segundo frame */ BYTE Reserved3[40]; /* valor 00h */ } FLICHEADER;
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
22
11
5.10.1.- FLC/FLI : Datos FLI (I) typedef struct _ChunkHeader { DWORD ChunkSize; /* tamaño en bytes */ WORD ChunkType; /* identificador de tipo de bloque */ WORD NumberOfChunks; /* número de subbloques */ BYTE Reserved[8]; /* valor 00h */ } CHUNKHEADER; Valor
Nombre
Descripción
04h
COLOR_256
Paleta de 256 colores
07h
DELTA_FLC
Datos con compresión delta
0Bh
COLOR_64
Paleta de 64 colores
0Ch
DELTA_FLI
Datos con compresión delta
0Dh
BLACK
Datos de frame en negro
0Fh
BYTE_RUN
Datos con compresión RLE
10h
FLI_COPY
Datos sin comprimir
12h
PSTAMP
Imagen con estampación
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
23
5.10.1.- FLC/FLI : Estructura interna FLI CabeceraFLI Frame 1 (compresión RLE) (sub)bloque PSTAMP (opcional) (sub)bloque COLOR_256 (sub)bloque BYTE_RUN (sub)bloque COLOR_256 (sub)bloque BYTE_RUN Frame 2 (compresión Delta) (sub)bloque COLOR_256 (sub)bloque DELTA_FLI Frame 3 (sin comprimir) (sub)bloque COLOR_256 (sub)bloque FLI_COPY Frame 4 (Negro) (sub)bloque BLACK Frame n (compresión Delta) (sub)bloque COLOR_256 (sub)bloque DELTA_FLI Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
24
12
5.10.1.- FLC/FLI : Bloque DELTA_FLI typedef struct _DeltaFliChunk { CHUNKHEADER Header; /* cabecera */ WORD LinesToSkip; /* número de líneas iniciales a saltar */ WORD NumberOfLines; /* número de líneas codificadas */ /* para cada línea */ struct _Line { BYTE NumberOfPackets; /* número de paquetes */ BYTE LineSkipCount; /* número de líneas a omitir */ struct _Packet /* Para cada paquete */ { BYTE SkipCount; /* número de pixels a saltar, indica el número del píxel actual */ BYTE PacketType; /* Codificación del paquete */ BYTE PixelData[]; /* datos de pixels del paquete */ } Packet[NumberOfPackets]; } Lines[NumberOfLines]; } DELTAFLICHUNK; Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
25
5.10.1.- FLC/FLI : Bloque DELTA_FLC typedef struct _DeltaFlcChunk { CHUNKHEADER Header; /* cabecera */ WORD NumberOfLines; /* número de líneas codificadas */ struct _Line /* Para cada línea */ { WORD PacketCount; /* conteo de paquetes, de saltos o valor del último byte */ struct _Packet /* Para cada paquete */ { BYTE SkipCount; /* número de pixels a saltar */ BYTE PacketType; /* tipo de codificación */ WORD PixelData[]; /* datos de píxels */ } Packet[NumberOfPackets]; } Lines[NumberOfLines]; } DELTAFLCCHUNK;
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
26
13
5.10.1.- FLC/FLI : Bloque BYTE_RUN
typedef struct _ByteRunChunk { CHUNKHEADER Header; /* cabecera */ BYTE PixelData[]; /* datos de pixels codificados con RLE */ } BYTERUNCHUNK;
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
27
5.10.1.- FLC/FLI : Bloque FLI_COPY
typedef struct _CopyChunk { CHUNKHEADER Header; /* cabecera */ BYTE PixelData[]; /* valor de los pixels alto*ancho*/ } COPYCHUNK;
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
28
14
5.10.1.- FLC/FLI : Bloque PSTAMP typedef struct _PstampChunk { DWORD ChunkSize; /* tamaño del bloque */ WORD ChunkType; /* identificador de tipo*/ WORD Height; /* altura en píxels */ WORD Width; /* anchura en píxels */ WORD ColorType; /* tipo de traducción de color 0x1 indica espacio de colores de 6 cubos*/ BYTERUNCHUNK PixelData; /* datos 100x63*/ } PSTAMPCHUNK; Los posibles valores como identificador de tipo son: 0Fh Codificación run-length 10h Datos sin comprimir 12h Tabla de traducción de color de 6 cubos
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
29
5.10.1.- FLC/FLI : Bloque BLACK
typedef struct _BlackChunk { CHUNKHEADER Header; /* cabecera */ } BLACKCHUNK;
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
30
15
5.10.1.- FLC/FLI : Bloque COLOR_64/256 typedef struct _ColormapChunk{ CHUNKHEADER Header;
/* cabecera */
WORD NumberOfElements;
/* número de elementos de color en el mapa */
struct _ColorElement
/* Para cada elemento */
{ BYTE SkipCount;
/* Número de colores a saltar */
BYTE ColorCount;
/* Número de colores */
struct _ColorComponent /* Para cada color */ { BYTE Red;
/* rojo 0..63 para COLOR_64, 0..255 para COLOR_256 */
BYTE Green;
/* verde */
BYTE Blue;
/* azul */
} ColorComponents[ColorCount]; } ColorElements[NumberOfElements]; } COLORMAPCHUNK; Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
31
5.10.2.- GIF89a (I). z
GIF89a –
–
Un GIF puede tener más de una imagen por fichero, permitiendo llevar a cabo una sucesión de imágenes y no una única imagen. A este formato se le añadieron una serie de especificaciones que dio origen al formato GIF89a, que guarda información acerca de cuestiones como: z z z z z z z
Cuantas centésimas de segundo hay que esperar antes de mostrar el siguiente fotograma. Esperar por la entrada de usuario. Especificar el color transparente. Incluir comentarios no imprimibles. Mostrar líneas de texto. Indicar como deberá ser eliminado después de haber sido mostrado. Extensiones de aplicaciones específicas dentro del fichero. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
32
16
5.10.2.- GIF89a (II). z
La estructura de un fichero GIF89a está está compuesta por bloques y extensiones.
z
Las caracterí características bá básicas de este formato lo han hecho muy popular entre los creadores de pá páginas Web por: – Que mantiene los beneficios de GIF: transparencia, compresió compresión, entrelazado, paletas y permite un compromiso entre tamañ tamaño y compresió compresión. – Es soportado por la mayorí mayoría de navegadores y plataformas.
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
33
5.10.3.- VRML z
z
Virtual Reality Modelling Language es un formato estándar de fichero (ISO/IEC 14772) que describe la creación y exploración en la Web de entornos tridimensionales interactivos. (fichero .wrl) Características – – – – – –
Independencia de plataforma Extensibilidad Trabaja con bandos de ancha bajos Puede contener referencias a otros mundos, documentos HTML o MIME Describe escenas e interacciones con el usuario Incluye diferentes niveles de detalle: va mostrando aproximaciones hasta tener todo el modelo cargado Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
34
17
5.10.3.- Estructura básica de VRML z z
Grafos de escena Característica de un nodo – – – –
Tipo de objeto (cubo, esfera, transformación, etc) Parámetros o campos que lo diferencian Nombre identificador Nodos hijos
Separator { Material { emissiveColor 0.3 0.1 0.3 } Cylinder { radius 0.1 height .2 } } Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
35
5.10.3.- Nodos VRML (I) z z
Definen la geometría del mundo, cómo se dibujan las formas los diferentes grupos. Nodos geométricos – – –
z
Nodos de grupo –
z
Formas: AsciiText, Cone, Cube, Cylinder, IndexedFaceSet, IndexedLineSet,PointSet,Sphere. Propiedades geométricas: Coordinate3, FontStyle, Info, Material, MaterialBinding, Normal, Texture2,.. Propiedades de transformaciones: MatrixTransform, Rotation, Scale, Translation Separator, Switch, WWW Anchor, LOD (level of detail)
Otros nodos –
OrtographicCamera, PerspectiveCamera, PointLight,SpotLight Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
36
18
5.10.3.- Nodos VRML (II) z
Instanciación – Un nodo puede ser hijo de más de un grupo – DEF y USE para usar una ocurrencia múltiples veces.
z
Extensibilidad – Las extensiones a VRML se incluyen con nodos auto-definidos, en los que se indica antes de sus campos una descripción de cuáles son esos campos (nombre y tipo de valor), con la palabra fields y entre corchetes. Si Cube no fuera parte del estándar, se indicaría como Cube { fields [ SFFloat width, SFFloat height, SFFloat depth ] width 10 height 4 depth 3 } –
Esta especificación se debe hacer en cada nodo no estándar, aunque ya haya aparecido antes. Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
37
5.11.- Herramientas para animaciones z
Ulead GIF Animator
z
Advanced GIF Animator
Sistemas Multimedia e Interacción Gráfica- Curso 2004/05
38
19