Glitch Quartz Composer

Quartz Composer es un programa que viene como parte del entorno de desarrollo XCode en Mac OS X y sirve para el procesamiento y representación de datos gráficos sin necesidad de escribir código. Quartz Composer utiliza OpenGL (incluyendo GLSL ), OpenCL (sólo en Mac OS X 10.6 y posteriores), Core Image, Core Video, JavaScript y otras tecnologías profundamente integradas en el sistema operativo.También puede incorporar plugins externos (Third-Party Quartz Conposer) e interactuar con protocolos de comunicación como MIDI, OSC, Syphon, Kinect, etc. Por tanto con Quartz se pueden hacer una gran cantidad de efectos, protectores de pantalla de iTunes Music visualizadores, películas Quick Time, motion graphics de todo tipo, composiciones interactivas con el audio (lo que ha provocado un gran interés en Quartz Composer desde el mundo VJs), dispositivos, etc. Pero ¿Y composiciones de tipo Glitch?. Es lo que intentaré hacer con esta composición sencilla sin usar ningún tipo de plugin ni elementos externos.

A raiz de algunos errores provocados (por mi o accidentalmente) al realizar algunas composiciones, nació la idea de poder llegar a hacer una composición de tipo glitch pero sin usar ningún tipo de plugin (como los de Vade , etc) tratando de romper de alguna manera la secuencia del render; al fin y al cabo Quartz funciona como capas y a cada una se la asigna un procesador, funcionando en orden secuencial de menor a mayor. Son los denominados patches Render.
Lo primero que hice fue escoger las Source Images que iba a utilizar para el documento; tenía que ser algo dinámico y varias imágenes que se fueran sucediendo entre sí, para que lo contenido en el deep buffer de unas se combinaran con los residuos de las otras imágenes y creara el efecto glitch (junto a otros recursos). Así utilicé 3 Generators (Checkerboard, NI Perlin Noise, NI Constant Color) y un archivo de video (Movie Importer); para que las imágenes fueran sequenciales usé un Image Multiplexer con Interpolation para el valor, la duración y el modo de repetición.

glitch_sources1

Pero las imágenes que producen los Generators tienen infinitas dimensiones y Quartz Composer no sabe cómo renderizar esas imágenes, por lo que hay que utilizar un Patch Ilamado Image Crop. Ahora bién ¿qué valor ponemos en Crop Width y Crop Height?. Para ello necesitamos un Patch llamado Rendering Destination Dimensions el cual nos da las reales dimensiones del rendering en las unidades de coordenadas Quartz Composer o de pixeles y su Aspect Ratio.

glitch_sources2

En esta composición vemos como hay dos capas o niveles de Render que son los patches azules, Sprite y Clear y vienen marcados en el ángulo superior derecho con un número (de menor a mayor). Siempre en toda composición el patch Clear tiene que estar presente y siempre con el número 1, en el nivel superior de la jerarquía; es la primera operación de render (podríamos decir la escena) y luego vienen los siguientes, que pueden ser un Environment (3D Transformation, Lighting, Iterator, etc. que contienen otros subpatches) o el Render del objeto, un Billboard o Sprite, como en este caso. Como vemos en el ejemplo si desactivamos ambos no se renderiza nada.

glitch_sources3

Empezé a pensar cómo podía desestabilizar el render y me acordé de algo que me había ocurrido alguna vez usando el Render in Image. Este Macro Patch renderiza los sub-patches que hay dentro de él y crea un nuevo render de destino como una imagen; todos los subpatches renderizan con este nuevo destino diferente del original. Así que seleccioné todo, cut&paste, y lo puse dentro del Render in Image como vemos en la captura de pantalla.

glitch_sources4

Doble click en Render in Image y a continuación publiqué el tamaño del Crop, Crop Wigth y Crop Height para que el tamaño de las imágenes producidas por los Generators venga determinado por el Rendering Destination Dimensions y lo mismo con dos Math (con valor Dividido por 1) para el Center X e Y del Checkerboard. Añadí otro Sprite y lo publiqué como “Image B”.

glitch_sources5

En la raiz de la composición conectamos Pixels Wide, Pixels High del Rendering Destination Dimensions con Pixels Wide, Pixels High, Center X, Center Y, Crop Width, Crop Height del Render in Image y Widh, Height con Width, Height del Sprite (así al Resize la ventana del Preview la imagen se adaptará al tamaño de la misma). Añadimos un Accumulator al que conectamos la salida Image con Replacing Image y la salida Image de éste con la entrada Image B creando así un feddback con el segundo subpatche Sprite. También puse un CIOpacity para cambiar la opacidad y un Image Multiplexer para escoger entre dos entradas de Imagen y poder tener más variabilidad en los diferentes renders.

raiz_composicion

Pero la clave para que el render funcione incorrectamente y la imagen resultante tenga ese característico aspecto glitch es desactivar el Clear en el segundo nivel de la composición. De este modo el Render in Image no renderiza bien los subpatches incluidos en él y si además añadimos la Image B del segundo Sprite unida al Accumulator es por ello por lo que aparecen los visual artifacts que van cambiando a medida que reposicionamos la ventana del Preview.

render_clear2

Para obtenr diferentes glitches es aconsejable redimensionar la pantalla del preview como se ve en el vídeo.

You can download the file in the tab Downloads/Quartz Compositions

2 comentarios en “Glitch Quartz Composer

  1. Hi: for get the NI plugins you must download the FXFactory effects. Some are free and some are to pay (for Final Cut, After Effects…) but it is create automatically here /Library/Graphics/Image Units the plugin FXFactory Units.plugin. Then, when you open Quartz Composer there are all the NI patches in the Patch Library.
    Generator Checkboard is native in Quartz Composer, in Patch Library/Generators.

    I hope help you, if not you can write me again!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s