GEM: Tercera sesión

ARCHIVOS DE CLASE
- Archivos en ZIP
- 1_pix_alpha.pd
- 2_pix_add.pd
- 3_pix_mask.pd
- 4_pix_buffer.pd
- 6_animacion_tabla.pd
- 7_line.pd
- 8_secuencer.pd
- bufffer abstracción
- counter abstracción
- pmpd
Mezcla de video
Podemos mezclar video de dos maneras. La primera consiste en tener una escena con videos posicionados uno encima del otro. La mezcla de video consistiría en fundir el video superior a través del canal alpha hasta cero permitiendo ver así el video inferior. Mirar archivo Mezcla 1 de la sesión 2.
La segunda posibilidad que tenemos para mezclar video es marcar un threshold entre los valores de los colores RGB con [pix_alpha]. Este objeto nos permite asociar a cada pixel, dependiendo de su valor RGB, un atributo true o false en su canal alpha, lo cual nos permite eliminar de la imagen de manera puntual los pixeles que queramos.
Si queremos por ejemplo eliminar el fondo blanco de una imagen pondremos un threshold entre los valores siguientes:
En el siguiente archivo podéis ver como eliminamos el color negro de la animación y así visualizar un efecto de máscara con el video inferior. Aquí podéis bajar los videos de la animación y uno de ejemplo para el fondo.
Máscaras
Para hacer máscaras podemos utilizar el objeto [pix_mask] que nos permite hacer una máscara sobre el canal alpha entre dos imágenes. También podemos hacer sumas aditivas entre dos matrices utilizando [pix_add]. Las dos matrices tienes que ser del mimo tamaño para poder operar con este objeto. En el ejemplo siguiente creamos una máscara con [pix_add] eliminando el blanco de la animación de la línea.
Video en buffer
Podemos grabar imágenes de varias fuentes (video, cámara,…) al disco duro o a la memoria para ser utilizadas durante la ejecución del programa. Para grabar al disco duro utilizaremos [pix_record]. La utilización de este está explicada en el siguiente patch.
Por otra parte también podemos capturar imágenes del directo y volcarlas en memoria, buffers. Podemos utilizar tantos como nuestra máquina aguante. Un buffer es un espacio en memoria que podrá almacenar frames. Tantos como vosotros indiquéis. Para ellos tenemos que primero crear un espacio en memoria con [pix_buffer nombre numerodeframes] . Una vez creado el buffer podremos escribir en él con [pix_buffer write nombre numerodeframes]. Tanto para grabar imágenes a los frames del buffer como para poderlas visualizar tendréis que actualizar el índice (frame) del buffer.
Los pasos a seguir para utilizar el buffer son:
- 1. Crear buffer
- 2. Escribir en buffer ( actualizando con un metro el índice del buffer )
- 3. Reproducir (actualizando con un metro el índice del buffer )
Animaciones
GEM no contiene objetos específicos para animar. Los objetos importados en .obj sólo pueden ser manipulados en sus 3 ejes XYZ pero su esqueleto no es modificable. Existe un external para jitter que nos permite exportar animaciones en tiempo real exportada desde el motor de render Ogre3D. Aquí podeis encontrar más información: http://jitogre.org/wiki/index.php5?title=Main_Page
Ahora lo que queremos es animar instancias de objetos. Para ello tenemos que utilizar la lógica de pd (control). Podemos utilizar:
- Line
- Tablas (arrays) para organizar la el flujo de datos. Las tablas nos permiten modelar en tiempo real las curvas de datos.
- Expresiones
También podemos utilizar la librería Physical Modeling que nos permite simular comportamientos físicos reales como la aceleración, la gravedad, colisiones, etc. Aquí podéis encontrar más información:
http://drpichon.free.fr/pmpd/ http://recherche.ircam.fr/equipes/repmus/SMC04/scm04actes/P47.pdf